PHP-FPM pm.max_children ve havuz ayarları: Performans analizi
pm.max_children, dynamic ve ondemand havuz ayarları, PHP-FPM performansı üzerinde nasıl etkiler? Detaylı teknik inceleme.
Hızlı Özet
Özet: PHP-FPM havuzu ayarları, özellikle pm.max_children, dynamic ve ondemand modları, uygulama performansı ve kaynak tüketimi açısından kritik öneme sahiptir. pm.max_children, çalışan çocuk süreci sayısını belirlerken, havuz türü (dynamic/ondemand) kaynak kullanımını ve yanıt hızını doğrudan etkiler. Sunucunuzun RAM, CPU ve trafik profiline göre doğru ayar yapılması, hem performans hem de maliyet açısından büyük fark yaratır.
pm.max_children Nedir ve Nasıl Etkiler?
pm.max_children ayarı, PHP-FPM’in aynı anda kaç çocuk süreci (child process) çalıştırabileceğini belirler. Bu değer, sisteminizdeki RAM miktarına ve her çocuk sürecinin ortalama ne kadar bellek kullandığına göre belirlenmelidir. Örneğin, her çocuk süreci 50MB RAM tüketiyorsa ve 16GB RAM’e sahipseniz, en fazla 32 çocuk süreci çalıştırabilirsiniz.
pm.max_children Belirlenmesi İçin Formül:
```
pm.max_children = Toplam RAM / Her çocuk süreci RAM tüketimi
Bu formülü uygulamak, sistemdeki bellek taşmalarını ve PHP-FPM’in ölümcül hatalar vermesini önler.
PHP-FPM Havuz Türleri: dynamic vs ondemand
PHP-FPM, iki ana havuz türü sunar: dynamic ve ondemand. Her biri farklı kullanım senaryolarına uygundur.
| Kriter | dynamic | ondemand |
|---|---|---|
| Başlangıçta çocuk süreci sayısı | pm.start_servers ile belirlenir |
ile sınırlıdır | pm.max_children ile sınırlıdır
| Yeni çocuk süreci nasıl başlar? | Trafik arttığında otomatik olarak | İlk istek geldiğinde
| Daha düşük RAM tüketimi mi? | Hayır | Evet
| Yanıt hızı | Daha hızlı (önceden başlatılmış çocuk süreçleri) | Daha yavaş (ilk istek biraz daha uzun sürebilir)
dynamic Havuzu Ne Zaman Tercih Edilir?
Yüksek trafikli siteler için daha iyi performans sağlar.
Düşük gecikme süresi kritik olan uygulamalarda uygundur.
ondemand Havuzu Ne Zaman Tercih Edilir?
Düşük trafikli siteler veya genellikle kapalı olan siteler için idealdir.
RAM kullanımını minimize etmek istenen durumlarda tercih edilir.
Örnek Ayar ve Performans Karşılaştırması
Aşağıdaki tabloda, farklı ayarlarla çalışan iki PHP-FPM havuzu karşılaştırılmıştır:
Ayar dynamic (pm.start_servers=4, pm.max_children=20) ondemand (pm.max_children=10) RAM Kullanımı 1000MB (ortalama 50MB/çocuk) 500MB (ortalama 50MB/çocuk) Yanıt Süresi (TTFB) 100ms 250ms CPU Kullanımı Yüksek (çocuk süreçler önceden başlatılır) Düşük (sadece istek geldiğinde başlatılır) En Uygun Kullanım Alanı WordPress, E-Commerce, API servisleri Blog, statik siteler, düşük trafikli projeler
Uygulanabilir Ayarlar ve Sunucu Kaynakları
Sunucunuzun RAM ve CPU kaynaklarını bilmek, PHP-FPM ayarlarını doğru yapmanın anahtarıdır. Aşağıdaki örnekler, farklı sunucu yapılarında uygulanabilecek ayarları gösterir:
Sunucu Türü RAM CPU pm.max_children pm.start_servers pm.min_spare_servers pm.max_spare_servers VPS (4GB RAM) 4096MB 2x3.4GHz 30 4 2 10 Kurumsal Sunucu (32GB RAM) 32768MB 8x3.8GHz 120 10 5 30 Cloud Sunucu (16GB RAM) 16384MB 4x3.6GHz 60 6 3 15
İç Bağlantılar (HostBilgim)
[VPS sunucu kıyaslama][/en-ucuz-vps] sayfası, PHP-FPM için uygun sunucuları seçmenize yardımcı olur.
[PHP-FPM ayarları][/en-iyi-wordpress-hosting] WordPress siteleri için en iyi performansı elde etmenin yollarını gösterir.
Sonuç
PHP-FPM performansı, doğru ayarlarla büyük ölçüde optimize edilebilir.
pm.max_children ve havuz türü, en kritik ayarlardır. Sunucunuzun kaynakları ve uygulama türüne göre bu ayarları yapılandırarak, hem daha hızlı yanıt süreleri hem de daha düşük maliyet elde edebilirsiniz.
SSS
1. pm.max_children ne kadar olmalı?
Sunucunuzun RAM miktarına ve her çocuk süreci ortalama ne kadar RAM tüketiyorsa buna göre belirlenmeli. Örneğin 16GB RAM’li bir sunucuda, her çocuk 50MB RAM tüketiyorsa maksimum 32 çocuk süreci olabilir.
2. dynamic ve ondemand arasındaki fark nedir?
dynamic havuzu, belirli sayıda çocuk sürecini önceden başlatır. ondemand ise çocuk süreçlerini sadece ilk istek geldiğinde başlatır. Bu nedenle RAM kullanımı ondemand’da daha düşüktür.
3. PHP-FPM havuzu ayarlarını nasıl test edebilirim?
ApacheBench (ab), Siege veya JMeter gibi araçlarla HTTP istekleri göndererek performansı test edebilirsiniz. Yanıt süreleri ve CPU/RAM kullanımını izleyerek ayarların etkisini gözlemleyebilirsiniz.
4. PHP-FPM’in kaynak tüketimi çok yüksekse ne yapmalıyım?
pm.max_children değerini düşürerek çocuk süreci sayısını sınırlayabilir veya ondemand` havuzu kullanarak RAM kullanımını azaltabilirsiniz. Ayrıca, uygulamada optimize edilebilecek kod blokları kontrol edilmeli.
Uzman Değerlendirmesi
Doğru barındırma altyapısını belirlerken sadece ilk satın alma indirimlerine değil; yenileme maliyetlerine, gerçek NVMe disk IOPS değerlerine ve Türkiye çıkışlı gecikme sürelerine dikkat edilmelidir. Tarafsız sağlayıcı karşılaştırmaları ve güncel fiyat analizleri için /hosting-fiyatlari-2026 ve /en-ucuz-vds-sunucu tablolarımızı inceleyebilirsiniz.