NeWorld

Žudom užciklinusius php-cgi procesus

by neworld on Bal.04, 2008, under Administravimas, php, Serveris

Buvau susidūręs su problema. Keletą dienų karts nuo karto užsiciklindavo visi 5 php-chi threadai. Nepadėdavo nė kas valandinis php perkrovimas. Problemą išsprendžiau kas minutę paleisdamas tokį skriptuką:

for process in `ps -C php-cgi | grep '.*00:[0-9][1-9]:.*' | awk '{print $1}'`
do
kill -QUIT $process
done

/usr/bin/spawn-fcgi -f /usr/bin/php-cgi -C 5 -p 10001 -u web -g web

Dar php perkraunu kas parą 6 valandą ryto, kai būna mažiausias srautas. Problemos dingo.

:, , , ,

7 Comments for this entry

  • Scam

    Kam tas ciklas..
    ar neužtektų: kill -QUIT `pidof php-cgi`
    Paprastumas, paprastumas ir dar karta paprastumas, Ponai :)

  • Scam

    Ir dar, yra gražesnė komanda “killall”. Tada būtų taip: killall -QUIT php-cgi

  • neworld

    Tamsta musėt neįsiskaitėte. Neturiu jokio tikslo žudyti visus php procesus. Mano tikslas žudyti tuos, kurie procesorių užkrovė ilgiau kaip 1 minutę, kadangi php skriptams timeout’as yra 15 sekundžių. php procesai įsijungia automatiškai patys. Kol kas skriptas veikia gerai, ir jau geras mėnuo kai neturėjau jokių sutrikimų.

    Be to ačiū, žinosiu, kaip patobulinti kitą skriptą, kuris ir skirtas restartuoti php. Tenai irgi naudoju ciklą.

  • Scam

    :) nu tai vistiek galima be ciklo: kill -QUIT `ps -C php-cgi | grep ‘.*00:[0-9][1-9]:.*’ | awk ‘{print $1}’ | paste -s`

  • neworld

    Bet kai php veikia kaip FCGI, tai vienu metu sukasi keli php procesai, taigi ir vienu metu gali būti užsiciklinę daugiau negu 1, nebent yra naudojamas tik vienas php procesas. Mano atveju sukasi 6 php-cgi procesai, plius crontab’ai išsikviečiau sau atskirus po vieną.

  • Scam

    taigi viskas, ok.
    su kill galima killint daugiau negu viena pid :)

  • neworld

    Galima, bet man reikia kilinti tik reikiamus, o ne visus ir ne vieną. Taigi arba tas paste -s (nes nežinau ką jisai daro) padaro tai ko reikia, arba kilina tik vieną užsiciklinusi procesą.

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!