PHP‑FPM Ayarları: Dynamic, Static ve Ondemand Karşılaştırması

BozkırKağanX

Yeni Üye
Katılım
Eyl 2026
Konular
1
Mesajlar
1
Tepki puanı
0
Görüntülenme
0
PHP‑FPM, işlem havuzu yönetiminde üç temel mod sunar: dynamic, static ve ondemand. Her biri farklı trafik profilleri ve kaynak kullanımları için uygundur.

ModÖnerilen KullanımAna DirektiflerÖrnek Ayarlar
DynamicOrta‑yük, zaman içinde artan istek; CPU ve bellek dengesi önemlipm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_serverspm.max_children = 50<br>pm.start_servers = 10<br>pm.min_spare_servers = 5<br>pm.max_spare_servers = 15
StaticSabit sayıda istek, düşük bellek tüketimi; düşük gecikmepm.max_childrenpm.max_children = 10
OndemandDüşük trafik, bellek tasarrufu; varışta yeni işlem başlatmapm.max_children, pm.process_idle_timeoutpm.max_children = 20<br>pm.process_idle_timeout = 10s

Diğer kritik ayarlar:

  • pm.max_requests: Tek bir çocuğun kaç istek sonrasında yeniden başlatılacağını belirler. 500‑1000 arası değer, bellek sızıntısı önler.
  • pm.process_idle_timeout (ondemand için): Çelişki yoksa 10‑20 saniye varsayılır.
  • pm.max_spare_servers (dynamic): Aşırı bellek tüketimini engellemek için 1‑2 katına kadar sınırlandırılabilir.
  • OPcache: opcache.memory_consumption ve opcache.max_accelerated_files değerleri, PHP dosyalarının önbelleklendirilmesini optimize eder; genellikle memory_consumption = 128 ve max_accelerated_files = 4000 başlangıç için uygundur.

Yönlendirme
  1. Trafik analizini yaparak hangi modun uygun olduğunu belirle.
  2. Belirlenen mod için pm.max_children değerini toplam CPU çekirdek sayısı çarpı 1.5‑2 olarak ayarla (ör. 2 çekirdek → 3‑4 çocuk).
  3. pm.max_requests’ı 1000 olarak ayarlamak, bellek sızıntısını azaltır.
  4. OPcache ayarlarını site boyutuna göre ölçekle.

Açıklanması gereken bir nokta: pm.max_children değerinin yüksek olması, bellek sınırını aştığında 503 hatalarına yol açar; bu yüzden sistem bellek sınırını kontrol etmek kritik.

Soru
Siz hangi PHP‑FPM modunu tercih edersiniz ve neden?
 
Geri
En Üst