Portál AbcLinuxu, 12. května 2025 11:23

Dotaz: Monitoring CPU

4.3.2009 08:14 Habaso | skóre: 2
Monitoring CPU
Přečteno: 366×
Odpovědět | Admin

Ahoj vsem, potreboval bych poresit automaticky restart apache, pokud konzumuje prilis cpu. Hledam, jak napsat podminku do skriptu, kterym to poresim

#!/bin/sh

SLUZBA = httpd

if ["$(pidof $SLUZBA)"]

then

else

     invoke-rc.d $SLUZBA restart

fi

A misto pidof tam potrebuji neco, co zjisti, zda mi apache nekonzumuje prilis cpu, rekneme trebas ne vic, nez 80 procent.

Prikazem ps -eo pcpu,user | sort -k 1 -r | head -2 dostanu usera, ktery konzumuje nejvice cpu. Vystup jsou 2 radky, napr.

%CPU USER
 9.7 root

Z tohohle potrebuji nejakym zpusobem poznat, ze user apache ma pres 80 a napsat podminku do restartovaciho skriptu. Nejsem moc zbehlej v sh a tak prosim o pomoc.

   Dekuji

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

4.3.2009 08:49 Petr
Rozbalit Rozbalit vše Re: Monitoring CPU
Odpovědět | | Sbalit | Link | Blokovat | Admin

restartovat apache pokazde, kdyz zatizi CPU na 80% neni podle me prilis stastne. Proces totiz muze vytizit procesor jednorazove na nekolik sekund a pak se vratit do "normalnich" hodnot.. lepsi resenim by mohla byt instalace tohoto: http://sourceforge.net/projects/modoverload/

4.3.2009 08:56 Habaso | skóre: 2
Rozbalit Rozbalit vše Re: Monitoring CPU

A pomuze to? Neco se tam kouse a me pak postupne pribyvaji instance, co si rozdeli cele CPU. A v logu kde nic tu nic, zadna chyba... Takze nevim, jestli nekde zacyklenej apache muze sam sebe resit pres overload. Ten muj skript to kazdou minutu zkontroluje a neni problem restartovat az kdyz to bude dve minuty po sobe... Jen musim dat do kupy tu podminku... Nicmene modul overload vyzkousim...

4.3.2009 10:26 Petr
Rozbalit Rozbalit vše Re: Monitoring CPU

pokud to zpusobuje nejaka chyba ve skriptu, tak to samozrejme nepomuze nic jineho nez restarty :-)

4.3.2009 11:58 Habaso | skóre: 2
Rozbalit Rozbalit vše Re: Monitoring CPU

Tak jsem misto reseni vlastniho skriptu nainstaloval Monit a nakonfiguroval ho k hlidani apache...

check process apache with pidfile /var/log/httpd/httpd.pid

start program = "/etc/init.d/httpd start"

stop program = "/etc/init.d/httpd stop"

if cpu > 60% for 2 cycles then alert

if cpu > 80% for 2 cycles then restart

if totalmem > 200.0 MB for 5 cycles then restart

if children > 250 then restart

if loadavg(5min) greater than 10 for 8 cycles then stop

if failed host www.*******.cz port 80 protocol http

and request "/o-webu"

with timeout 25 seconds

then restart

if failed host www.*******.cz port 443 type tcpssl protocol http

with timeout 25 seconds

then restart

if 5 restarts within 5 cycles then timeout

group server

 

 

BTW: Na tom serveru nejede zadny muj skript, jen x ruznych veci, od wordpressu, pres gallery2, openwebmail, ocs.. az po webove klienty k openfire. Na hledani co to mrznuti zpusobuje, kdyz v logu nic neni, nemam ted momentalne cas :)

 

 

4.3.2009 12:07 NN
Rozbalit Rozbalit vše Re: Monitoring CPU

Apache viz apache.conf se vaze na usera www-data,

takze asi takto zjistim maximalni procenta pod tim to

userem:

#!/bin/sh

SLUZBA = http

CPU = `ps -eo pcpu,user | sort -k 1 -r | grep www-data | head -1 | cut -d\  -f 2 | cut -d. -f 1`

if [ "$CPU" -gt 80 ]; then invoke-cr.d $SLUZBA restart

fi

exit 0

Ale priklanim se k nazoru, ze timto se problem nevyresi,

ale pouze odddali.

NN

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.