PHP-FPM (FastCGI Process Manager), yüksek trafikli web sitelerinde performansı optimize etmek için yaygın olarak kullanılır. Ancak, proses sayısının kontrolü ve izlenmesi, sunucu stabilitesi açısından kritik öneme sahiptir. Bash kullanarak PHP-FPM proses sayısını düzenli olarak izlemek ve olası aşırı yüklenmeleri erken tespit etmek oldukça faydalı olabilir.
PHP-FPM, kendi prosesleriyle çalışırken, proses sayısı konfigürasyon dosyasındaki ayarlara göre sınırlandırılır. Process sayısını izlemek için,
ps veya
pgrep komutları kullanılabilir. En yaygın yöntem,
pgrep ile PHP-FPM proseslerini saymak ve sonucu bir değişkene atıp, belirli eşiklerle karşılaştırmak.
Örneğin, aşağıdaki Bash scripti, PHP-FPM proses sayısını kontrol eder ve belirli bir sınırı aşarsa uyarı verir:
123456789101112131415#!/bin/bash
[b]PHP-FPM prosesleri sayımı[/b]
php_fpm_pids=$(pgrep php-fpm)
count=$(echo "$php_fpm_pids" | wc -l)
[b]Eşik değeri (örneğin 10 proses)[/b]
threshold=10
echo "PHP-FPM proses sayısı: $count"
if [ "$count" -gt "$threshold" ]; then
echo "Uyarı: PHP-FPM proses sayısı eşik değerini aşıyor!"
# Burada e-posta veya başka bir bildirim gönderilebilir
fi
Daha gelişmiş izleme için, bu scripti cron ile düzenli çalıştırabilir ve loglara kaydedebilirsiniz. Ayrıca, proses sayısı belirli bir seviyeyi aşarsa otomatik olarak yeniden başlatma veya yapılandırma ayarlarını gözden geçirme gibi önlemler alınabilir.
İşte dikkat edilmesi gereken noktalar:
pgrep ile arama yaparken, sadece php-fpm ana proseslerini değil, alt süreçleri de sayar, bu yüzden doğru sayımı sağlamak adına -x veya -f parametreleri kullanılabilir.- Scriptin güvenlik ve performans açısından uygun izinlerle çalıştığından emin olun.
- İzleme sonuçlarını sistem loglarına veya merkezi izleme araçlarına entegre etmek, uzun vadeli analizler ve otomasyon için faydalıdır.
PHP-FPM proses sayısının kontrolü, sistem stabilitesi ve performans yönetimi açısından kritik bir adım. Bu tür basit Bash scriptleri, otomasyon ve erken uyarı mekanizmaları kurmakta oldukça etkilidir. Sizler bu konuda nasıl çözümler geliştirdiniz veya karşılaştığınız en büyük sorunlar nelerdir?