Merhaba, Bu yazımızda Centos 6.x ile Plesk 11.5 Kontrol Paneli yüklü bir sunucuda Apache ve Nginx web servislerini optimize etmeyi öğreneceğiz. Bir süredir yaygın olarak kullanılmaya başlayan Reverse Proxy özelliği sayesinde statik yükün büyük bir kısmını Nginx üstlenirken Apache ise sadece php süreçlerini işliyor. Bu sayede iki web server bir arada işbirliği yaparak daha iyi bir performans sergiliyebiliyorlar. Tabii ki bu sistemin bir takım kusurları yok değil. Uzun süren php süreçleri ile çok fazla bağlantı sayısı ile başa çıkmak için aşağıdaki yönergeleri izlemenizi tavsiye ederiz.
ilk olarak /etc/httpd/conf.d/fcgid.conf dosyasını yedekleyin ve aynı isimde boş bir dosya yaratıp aşağıdaki parametreleri ekleyin
LoadModule fcgid_module modules/mod_fcgid.so <IfModule mod_fcgid.c> <IfModule !mod_fastcgi.c> AddHandler fcgid-script fcg fcgi fpl </IfModule> FcgidIPCDir /var/run/mod_fcgid/sock FcgidProcessTableFile /var/run/mod_fcgid/fcgid_shm FcgidInitialEnv RAILS_ENV production FcgidIdleTimeout 3600 FcgidIdleScanInterval 480 FcgidBusyTimeout 1800 FcgidBusyScanInterval 480 FcgidZombieScanInterval 12 FcgidErrorScanInterval 12 FcgidProcessLifeTime 0 # Change the rate at which new FastCGI processes are spawned under load. Higher=faster FcgidSpawnScoreUpLimit 10 # Higher number = spawning more FastCGI processes decreases the spawn rate (controls runaway FcgidSpawnScore 1 # Higher number = terminating FastCGI processes decreases the spawn rate (controls runaway) FcgidTerminationScore 2 # Increase the FastCGI max request length for large file uploads (needed for some sites) FcgidMaxRequestLen 1073741824 FcgidMaxRequestsPerProcess 100000 #FcgidMinProcessesPerClass 3 FcgidMaxProcessesPerClass 4 FcgidMaxProcesses 16 FcgidIOTimeout 1800 </IfModule>
Sonraki adımda /etc/httpd/conf.d/performans.conf isminde bir dosya oluşturun. Bu dosyaya aşağıdaki parametreleri girin.
HostnameLookups off KeepAlive Off StartServers 1 ServerLimit 2 MinSpareThreads 32 MaxSpareThreads 96 ThreadLimit 64 ThreadsPerChild 32 ThreadStackSize 2097152 MaxClients 64 MaxRequestsPerChild 0
3.cü adımda ise SSH konsolu üzerinden aşağıdaki komutları sırasıyla uygulayıp mevcut CPU Core adedine uygun olarak Apache üzerindeki MaxClient ve ServerLimit paramtrelerini otomatik düzenleyin.
num_cpus=$(awk '/^processor/{count++}END{print count}' /proc/cpuinfo) sed -i 's%[#]*HTTPD=.*%HTTPD=/usr/sbin/httpd.worker%g' /etc/sysconfig/httpd sed -i 's%HTTPD_BIN\s.*%HTTPD_BIN /usr/sbin/httpd.worker%g' /etc/psa/psa.conf sed -i "s/\(ServerLimit\s*\).*/$(( $num_cpus * 2 ))/" /etc/httpd/conf.d/performans.conf sed -i "s/\(MaxClients\s*\).*/$(( ( $num_cpus * 2 ) * 32 ))/" /etc/httpd/conf.d/performans.conf service psa stopall service psa restart
Hepsi bu kadar. Umarım bu makalemiz size yardımcı olmuştur.