testler sonucu bu iş apache tıkanıklığını açmıyor. sadece bash script benzerini yazmak isteyen olursa diye yazı yayında 🙂
başlık tam süper oldu 🙂 konu aslında basit linuxde process leri bulup killemek. öncelikle sebebimi anlatim. wordpress li serverımda bazen php bir patlıyorki sormayın habire php olmaya başlıyor roccess listesi. ama bunun bir sebebi yok yani nadiren nasıl bişey oluyorsa server kudurup bütün rame oturuyor bi noktadan sonrada non-responsive oluyor. ssh ile bi login olunmaz duruma geliyor. bu durumda apache restart etmeli veya php killemeli. php yi bi şekilde fastcgi ile apachenin altından çalışır duruma getirdim bu sayede ps -A dediğimde sistemde ki apache altındaki phpleri görebiliyorum. o zaman bunları öldürmem yeterli çünkü apache bir sonraki istekte nasılsa phpleri geri çalıştırıcak. sorun kaç php olursa killemeli. ortalama bir php processi % 1.5 ram yiyor 4gb dan hesaplarsak buda işte 7mb demek. 3gb boş ise 430 kadar process demek. o zaman crona ben 5dk da bir kontrol yapan ve php adedi 100 ü geçtiyse topuna kill çeken birşey yazmam servisi tıkanmasını kurtarmış oluyor. buda o işi yapan script.
#!/bin/bash
adet=`ps -A | grep "php" | grep -v grep | wc -l`
if [ $adet -ge 100 ] ; then
echo "killiall php"
`killall -9 php`
else
echo "long live php "
fi