Popüler Aramalar:  TLS Nedir?  MyBB SSL Ayarları  MyBB 1.8 Linkleri Gizleme Eklentisi  Wordpress LiteSpeed Cache Ayarları  Wordpress Eklentisiz Breadcrumb  Yandex Webmaster
VestaCP MySQL + PHP-FPM Optimizasyonu Nasıl Yapılır ?

VestaCP MySQL + PHP-FPM Optimizasyonu Nasıl Yapılır ?

Daha önce ki yazılarımda VestaCP‘nin çeşitli şekilde kurulumlarını anlatmıştım ancak hiç  sunucunun performansını iyileştirmeye yönelik paylaşım yapmamıştım. Bunun sebebi kendi sunucumda bir performans optimizasyonuna ihtiyaç duymamıştım bunun en büyük sebebi VestaCP’nin hafif çalışması ve tabii ki de vultr vps‘in kaliteli olmasından kaynaklı diyebilirim.

Her ne kadar VestaCP hafif bir sunucu kontrol paneli olsa da optimizasyon yapılması gerekiyor. Bu yazımda size MySQL ve PHP-FPM optimizasyonunu nasıl yapacağınızı anlatacağım.

[toc]

VestaCP Nasıl Kurulur ?

CentOS 6 Sunucuya VestaCP + Nginx Kurulumu
VestaCP + Nginx (Reverse Proxy) Kurulumu
VestaCP İlk Kurulum Sonrası Ayarları Nasıl Yapılır ? (Videolu Anlatım)

Şuan VestaCP kurdunuz ve ilk kurulumdan sonra yapılması gereken ufak ayarlamaları da yaptıysanız eğer optimizasyon yapmaya başlayabiliriz. Ben optimizasyon çalışmasını 1 GB ram ve Centos 6 x64 bit işletim sistemine sahip bir sunucuda gerçekleştireceğim. Yapılacak optimizasyon işlemleri buna bağlı olarak değişecektir. Siz de daha düşük bir ram ya da daha yüksek bir ram takılı ise ona göre ayarlama yapmanızda fayda var.

ÖNEMLİ: OPTİMİZASYON ÇALIŞMASI YAPMADAN ÖNCE LÜTFEN SİSTEMİNİZİN TAM YEDEĞİNİ ALINIZ!

 

VestaCP PHP-FPM Optimizasyonu Nasıl Yapılır ?

Sürekli kullanılan ve aktif bir siteniz var ise ve bu sitede php kullanıyorsanız php-fpm ram belleğini oldukça fazla kullanacaktır. Optimizasyon yapmadan önce tabii. Şuan bulunduğunuz kişisel blog sitem optimizasyon yapmadan önce php-fpm ram belleğimin tam yarısını harcıyordu yaklaşık 500 MB gibi değeri kullanıyordu. Geri kalan tüm sistemlere sadece 500 MB kullanım hakkı kalıyordu haliyle site bir anlık kullanıcı sayısında artış olması durumunda kitleniyordu. Ortalama 300-400 tekil kullanıcıya sahip blogum bu sayı bazen özellikle hafta sonları 600-700’e ulaşabiliyor.

Bu kadar fazla bellek kullanımı beni tedirgin etmişti ve nasıl optimize edeceğimi düşünürken kendimi bu konuyu araştırırken buldum ve yine ne yazık ki Türkçe bir kaynak bulamadım yine yabancı kaynaklardan edindiğim bilgileri ve bu bilgileri uygulayıp edindiğim tecrübeleri size aktarıyorum.

VestaCP’de php-fpm için 2 adet önemli dosya bulunmakta. Bunlar; default.tpl ve socket.tpl ve biz optimizasyon çalışmalarını bu iki dosya ile gerçekleştireceğiz. Unutmadan, lütfen bu iki dosyanın öncelikle yedeğini alın, yanlış bir işlem yaptığınızda yedekten geri atarak yanlışı düzeltebilirsiniz.

Bu iki dosyanın VestaCP’de ki dizin yolları:
default.tpl
/usr/local/vesta/data/templates/web/php-fpm/default.tpl
socket.tpl
/usr/local/vesta/data/templates/web/php-fpm/socket.tpl

Bu dosyaların konumunu öğrendiniz ve bu dosyaları bulduysanız eğer önce bir yere yedekleyin daha sonra her iki dosyada da aşağıda ki işlemi aynı şekilde yapacağız. Bu dosyaları bir kod editörü yardımı ile açın (Bkz: Web Geliştiricileri İçin Kod Editörü: Microsoft Visual Studio Code )

Her iki dosyada da pm = dymanic satırını bulun ve bu satırı pm = ondemand olarak değiştirin. Daha sonra hemen pm.max_spare_servers adlı bu kod satırının hemen altına aşağıda ki kodları ekleyin.

pm.process_idle_timeout = 10s
pm.max_requests = 500

Yapılan İşlemler Neler ?

Şimdi biz bunları yaptıkta bunlar ne ola ki diyenleriniz için kısaca yaptığımız bu değişiklikleri açıklayayım. İlk başta yaptığımız dymanic ve ondemand değişiklikleri php-fpm’nin işleyiş biçimini belirttik. Yani, dynamic php-fpm’yi sürekli çalışır halde tutmaktadır, ihtiyaç dahi duyulması o hep arkaplanda çalışacaktır. Bunu değiştirip sadece ihtiyaç hasıl olduğunda çalışmasını sağlamak için ondemand parametresini ekledik.

Bir diğer eklediğim pm.process_idle_timeout = 10s  parametresi ise örneğin bir php dosyası çalıştırıldı fakat bu dosya çalıştırıldıktan sonra bir daha hiç kullanılmadı, eğer biz bu parametreyi girmemiş olsaydık php-fpm sürekli o çalıştırılan php dosyasını çalıştıracaktı ve buda gereksiz sorgu, gereksiz yer kaplama demekti. Eklediğim bu parametre ile bir kez çalıştırılmış bir php dosyası 10 saniye boyunca kullanılmaz ise çalışmasını durdur anlamına geliyor haliyle buda php sorgusunu azaltacak anlamına geliyor.

Diğer satır olan pm.max_request = 500 ise php dosyalarına gelen isteklerin kaç saniyede işlenmesi gerektiğini belirttik. Aktif bir sitede gelen her isteği anında yaptığınızı düşünsenize ? bir süre sonra sistem gelen isteklere cevap veremez hale gelebilir, aşırı yüklenmeler olabilir. Bu yüzden her gelen php isteğini belli bir süreden sonra yorumlamak daha sağlıklı olacaktır. Bu 500 ifadesi standart bir ifadedir. Detaylı bilgi için tıklayın.

Bütün bu işlemleri yaptıktan sonra php-fpm’yi yeniden başlatmanız gerekiyor. Bunun için ise ssh ekranında aşağıda ki komutu girmeniz yeterlidir.

service php-fpm restart

Hepsi bu kadar. Yapılan işlemlerden sonra sonuç:

VestaCP PHP-FPM Optimizasyonundan Öncesi ve Sonrası
VestaCP PHP-FPM Optimizasyonundan Öncesi ve Sonrası

VestaCP MySQL Optimizasyonu Nasıl Yapılır ?

PHP-FPM optimizasyonumuzu tamamladığımıza göre geldik işin MySQL Optimizasyonu kısmına. Yine kendi sunucumun değerlerini baz alarak optimizasyonu yapacağım. Açıkcası bu aşamayı kısa tutacağım ve direkt optimizasyon kodlarını verip sizi yolcu edeceğim 😀 Tek tek yapılan işlemleri açıklasam en az 2 sayfalık yazı çıkar oradan biliyorsunuz ben biraz detaylı anlatırım ki daha net anlaşılsın yapılan işlemler o yüzden MySQL kısmında sadece önemli olan yerleri açıklayacağım.

MySQL için yapacağımız işlemleri my.conf dosyası üzerinden gerçekleştireceğiz. Bu dosya VestaCP’de /etc/my.conf yolunda bulunmaktadır. Dosyayı bulduysanız eğer her zaman ki gibi yedeğini alın ve dosyayı açıp içinde ki tüm kodları silip aşağıda ki kodları ekleyin.

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
max_connections=100
max_user_connections=30
wait_timeout=10
interactive_timeout=50
long_query_time=4
slow_query_log=0

key_buffer = 12M
myisam_sort_buffer_size = 32M
join_buffer_size=1M
read_buffer_size=1M
read_rnd_buffer_size = 256K
sort_buffer_size=2M
table_cache= 500
thread_cache_size=286
interactive_timeout=25
connect_timeout=5
max_allowed_packet=32M
max_connect_errors=1000
query_cache_limit=1M
query_cache_size=32M
query_cache_type=1
tmp_table_size=5000M
max_heap_table_size=64MB


innodb_buffer_pool_size=32M
innodb_flush_log_at_trx_commit=2
innodb_file_per_table

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

Bu kodlarda ki dizin yolu belirten kısımlarda oynama yapmayınız. Diğer rakamsal verilerde ise araştırma yaparak ne işe yaradığını öğrenip ona göre düzenlemeler yapabilirsiniz. Ya da benim sıklıkla uyguladığım deneme yanılma yolu ile ne işe yaradığını öğrenebilirsiniz. Bu kodlar 1 GB ram belleğe sahip sunucu için ayarlanmıştır sizin sunucu özelliklerinize göre değerlerde azaltma ya da yükseltme yapılabilir.

Bu kodları ekleyip my.conf dosyanızı kaydettikten sonra MySQL işlemcisini yeniden çalıştırmanız gerekmektedir. Bunun için ise service mysql restart bu kodu ssh konsol ekranında çalıştırmanız yeterlidir.

Bu optimizasyonları yaptıktan sonra VestaCP daha da stabil hale gelecektir ve sunucunuz oh be dünya varmış diyecektir.

Kolay gelsin, iyi çalışmalar efenim…

 Yazı Bağlantısını Kopyala & Paylaş

Benzer Yazılar

  • Debian 9’a MariaDB Nasıl Kurulur?

    Debian 9’a MariaDB Nasıl Kurulur?

    Bu blog yazımda dünyanın en çok tercih edilen, ücretsiz ve açık kaynak kodlu oldukça stabil, hızlı ve çeşitli modüller ile desteklenebilen veri tabanı sunucusu olan MariaDB'yi Debian 9 işletim sistemine nasıl kuracağınızı göstereceğim. MariaDB, oldukça hızlı, kararlı ve ölçeklenebilir bir MySQL veritabanı sunucusunun geliştirilmiş,eskiye dönük yazılımlarla tam uyumlu çalışabilen, drop-in…
  • VestaCP Varsayılan Portu (8083) Nasıl Değiştirilir?

    VestaCP Varsayılan Portu (8083) Nasıl Değiştirilir?

    VestaCP varsayılan olarak 8083 portu üzerinde çalışmaktadır. Bazı güvenlik endişesi durumlarında bu portun değiştirilmesi önerilir. Çok kolay bir şekilde birkaç adım ile bu portu kendinize göre düzenleyebilirsiniz. Seçeceğiniz port numarası rastgele sayılardan ibaret değildir. Örneğin cPanel 2082 ve 2083, 2087 portlarını kullanılır bu portlar Dünya genelinde tüm teknolojik cihaz ve…
  • Centos 7’de VestaCP’yi PHP 7.2 Sürümüne Yükseltme

    Centos 7’de VestaCP’yi PHP 7.2 Sürümüne Yükseltme

    VestaCP, açık kaynaklı, kolay kurulabilen, yönetilebilen ve Türkçe dil desteği bulunan ücretsiz bir sunucu yönetim panelidir. Basit ve temiz bir arayüze sahip olan VestaCP bilinen birçok işletim sisteminde stabil bir şekilde çalışmaktadır. VestaCP, RHEL 5, RHEL 6, RHEL 7 CentOS 5, CentOS 6, CentOS 7, Debian 6, Debian 7, Debian…
  • VestaCP PHP 5’den PHP 7’ye Nasıl Yükseltilir?

    VestaCP PHP 5’den PHP 7’ye Nasıl Yükseltilir?

    VestaCP ücretsiz sunucu yönetim panelleri arasında kullanımı,kurulumu kolay ve Türkçe dil desteği ile öne çıkmaktadır. Daha önce ki blog yazılarımda VestaCP sunucu yönetim panelini farklı şekillerde, farklı uygulamalarla nasıl kurabileceğinizi anlatmıştım. İlgili yazılara aşağıda ki bağlantıları kullanarak ulaşabilirsiniz.  İlgini Çekebilir VestaCP + Nginx (Reverse Proxy) Kurulumu CentOS 6 Sunucuya VestaCP…
VestaCP MySQL + PHP-FPM Optimizasyonu Nasıl Yapılır ? için Yorum'da Bulun

Bu yazıya şimdiye kadar 2 Yorum yapılmıştır.

  • Yorum Sahibi
     Yanıtla
    munlu Ziyaretçi

    centos ve vestacp yüklü sunucuda phpmyadmin root şifresini sıfırladım. Şifrenin yer aldığı my.cnf ve diğer dosyalarda yeni şifre yerini almış. Phpmyadmine ne eski ne de yeni şifre ile root girişi yapamıyorum.

    • Yorum Sahibi
       Yanıtla
      Hüseyin Körbalta Yazar 

      Merhaba,

      Yapmış olduğunuz işlemleri geriye takip ederek eski haline getirmeyi denediniz mi? İşlem yapmadan önce yedek almanızı tavsiye ederim böylelikle karşılaştığınız sorunlarda geri dönüş yapabilirsiniz.

Bir Cevap Yaz

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

 Lütfen, en az 15 karakterli bir yorum belirtiniz.

 Lütfen,isminizi belirtiniz.
 Lütfen, kullanmakta olduğunuz bir e-mail adresi giriniz.
 Yukarıda ki alanı işaretlemeniz zorunludur.Aksi takdirde yorumunuz gönderilemeyecektir.