"Enter"a basıp içeriğe geçin

Plesk’te Domain Bazlı PHP-FPM Limitleri Nasıl Ayarlanır?

Aynı sunucuda birden fazla web sitesi çalışıyorsa, her sitenin PHP yükü birbirinden farklı olur. Yoğun siteler daha fazla worker isterken, basit bir tanıtım sitesi sorunsuz çalışır. PHP-FPM, her domain için ayrı bir havuz oluşturduğu için bu sınırları domain bazında ayarlamak performansı direkt etkiler.

Aynı sunucuda trafik seviyeleri birbirinden çok farklı siteler bulunabilir. Bir e-ticaret sitesi her saniye onlarca isteği işlerken, bir blog sayfası daha sakin çalışır. Bu sitelerin hepsine aynı pm.max_children veya aynı memory limiti verildiğinde, bazıları gereksiz RAM tüketir, bazıları ise yük altında 503 veya 504 hatası üretmeye başlar.

Plesk Üzerinde PHP-FPM Modunu Kontrol Etme

Ayarlara başlamadan önce domainin PHP-FPM modunda çalıştığını kontrol edelim. Bunun için Plesk panelinde

Burada Run PHP as kısmı FPM değilse, modu FPM application served by Apache/Nginx olarak değiştirelim. Bu değişiklik domain için FPM havuzunu aktif hale getirir.

Aktif PHP-FPM servislerini listeleyelim

systemctl | grep fpm

Plesk üzerindeki FPM havuzlarını doğrulayalım

plesk bin php_handler --list | grep fpm

Belirli bir PHP-FPM servisinin durumunu kontrol edelim

systemctl status plesk-php80-fpm.service

Domain Bazlı PHP-FPM Limit Alanlarını Tanıyalım

Domain için PHP-FPM ayarlarının yer aldığı kısımda ihtiyacımız olan tüm parametreler görünür.

Plesk Üzerinde Domain Bazlı Limitleri Ayarlayalım

FPM ayarlarının bulunduğu alt bölüme geçelim. Burada “pm” modunu seçelim. Dynamic veya ondemand arasında seçim yaparak siteye uygun bir yapı belirleyebiliriz. Daha sonra pm.max_children değerini sitenin ihtiyacına göre düzenleyelim.

Dynamic mod seçiliyse start_servers, min_spare_servers ve max_spare_servers değerlerini de trafiğe uygun şekilde güncelleyebiliriz.

PHP’nin domain bazlı sınırları olan memory_limit, max_execution_time ve max_input_time değerlerini düzenledikten sonra ayarları kaydedelim.

Bazı Plesk sürümlerinde değişiklikler anında aktif olur. Bazı durumlarda ilgili PHP-FPM servisinin yeniden yüklenmesi gerekebilir. Bu işlem SSH üzerinden yapılabilir. XX yerine site için kullanılan PHP sürümü yazılır.

service plesk-phpXX-fpm restart

İzleme ve Hata Ayıklama

Yapılandırmanın doğru çalışıp çalışmadığını anlamak için ilgili domainin log dosyalarını inceleyelim.

/var/www/vhosts/system/domain/logs/

FPM’e bağlı hataları izlemek için PHP sürümüne göre log dizinini kontrol edelim.

/var/log/plesk-phpXX-fpm/

Hangi Log Mesajı Ne Anlama Gelir?

Loglarda görülen bazı mesajlar mevcut ayarların yetersiz veya gereğinden fazla olduğunu gösterebilir:

  • 503 Service Unavailable
    PHP-FPM taleplere zamanında cevap veremiyor olabilir.
Error 503 Service Unavailable Hatası ve Çözümü – Yazılım Mimarileri ve  Tasarım Desenleri Üzerine
  • upstream closed connection
    PHP süreçleri bağlantıyı zamanında tamamlayamıyor; yetersiz worker olabilir.
  • server reached pm.max_children
    Mevcut süreç sayısı maksimuma ulaşmış; pm.max_children düşük kalmış olabilir.

Sık Sorulan Sorular

503 hataları hep belirli dakikalarda çıkıyorsa sebep ne olabilir?

Genelde cron job, backup job veya API yoğunluğu gibi periyodik yük patlamaları nedeniyle pm.max_children tıkanır.

server reached pm.max_children setting

Bu durumda domain özelindeki max_children değerini biraz artırmak ya da cron zamanlamasını kaydırmak çözüm sağlar.

Nginx reverse proxy kullanan sitelerde FPM limitleri neden daha kritik?

Eğer pm.max_children düşükse PHP side tıkanır, Nginx ise upstream hatası verir:

upstream prematurely closed connection while reading response header

Bu hatayı gördüğünüzde önce domainin FPM limitsizliğini, sonra da Nginx timeout değerini kontrol etmek gerekir.

PHP-FPM havuzunun domain bazında açılmadığını nasıl anlarım?

/etc/php-fpm.d/ veya /opt/plesk/php/*/etc/php-fpm.d/ altında domain adına göre oluşmuş .conf dosyasını kontrol ederek havuzun gerçekten açıldığını doğrulayabilirsiniz.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir