PHP-FPM'nin max children sınırına ulaşması, sunucunun aşırı yük altında olduğunu ve yeni bağlantıların reddedilebileceğini gösterir. Bu durumu erken tespit etmek, performans sorunlarının önüne geçmek ve sunucu stabilitesini sağlamak adına kritik öneme sahiptir. Bu noktada, otomatik izleme ve uyarı mekanizmaları kurmak, yöneticilere zaman kazandırır ve olası darboğazları önceden fark etme şansı verir.
İşte PHP-FPM'nin max children limitine yaklaştığını veya aşıldığını tespit etmek için temel bir bash script örneği. Bu script, PHP-FPM süreçlerini ve ilgili konfigürasyonu tarayarak, maksimum çocuk sayısı ve şu anki süreç sayısı arasındaki farkı kontrol eder. Ayrıca, belli bir eşik değeri aşılırsa, email veya sistem uyarısı gönderir.
- Sistem ve PHP-FPM Durumunu Kontrol Etme:
ps komutlarıyla çalışan PHP-FPM süreçlerini sayar. Ayrıca, PHP-FPM konfigürasyon dosyasını okuyarak max_children değerini alır.
- Eşik Belirleme: Max children sınırına ulaşma yüzdesi veya doğrudan süreç sayısı ile sınır karşılaştırılır.
- Uyarı Mekanizması: Eşik aşılırsa, email veya log kaydı yapılır.
Örnek script:
1234567891011121314151617181920212223242526
#!/bin/bash
[b]PHP-FPM pool konfigürasyon dosyasını belirle[/b]
CONF_FILE="/etc/php/7.4/fpm/pool.d/www.conf"
[b]Max children değerini al[/b]
MAX_CHILDREN=$(grep -i 'pm.max_children' $CONF_FILE | awk '{print $3}')
[b]Çalışan PHP-FPM süreçlerini say[/b]
CURRENT_PROCESSES=$(ps aux | grep php-fpm | grep -v grep | wc -l)
[b]Uyarı eşiği (% olarak)[/b]
WARNING_THRESHOLD=80
[b]Max children sınırına ulaşma yüzdesini hesapla[/b]
PERCENT_USED=$(( CURRENT_PROCESSES * 100 / MAX_CHILDREN ))
echo "PHP-FPM max_children: $MAX_CHILDREN"
echo "Şu anki süreç sayısı: $CURRENT_PROCESSES"
echo "Kullanım oranı: $PERCENT_USED%"
[b]Uyarı durumu[/b]
if [ "$PERCENT_USED" -ge "$WARNING_THRESHOLD" ]; then
echo "Uyarı: PHP-FPM max_children kullanımı %$PERCENT_USED seviyesine ulaştı." | mail -s "PHP-FPM Max Children Uyarısı" admin@example.com
fi
Bu temel izleme, düzenli olarak cron veya başka bir otomasyon sistemine entegre edilerek, kritik sınırların aşılması durumunda derhal bilgi alınmasını sağlar. Ayrıca, bu scripti gelişmiş hale getirerek, gerçek zamanlı grafikler ve detaylı raporlar oluşturmak da mümkündür. Bu sayede, sunucu performansını optimize etmek ve olası darboğazları önlemek daha etkin hale gelir.
Sizce, bu tarz otomatik izleme sistemlerine ek olarak, başka hangi yöntemleri veya araçları kullanıyorsunuz? Önerileriniz ve deneyimleriniz neler?