PDA

Bekijk Volledige Versie : apache 2 veroorzaakt load



klasje.be
29/10/07, 21:32
top - 21:28:30 up 2:23, 2 users, load average: 5.04, 4.83, 4.22
Tasks: 99 total, 7 running, 91 sleeping, 0 stopped, 1 zombie
Cpu(s): 98.3%us, 0.3%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 1.3%st
Mem: 665744k total, 414800k used, 250944k free, 38388k buffers
Swap: 536568k total, 0k used, 536568k free, 212668k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6401 www-data 25 0 38924 10m 3988 R 19.9 1.6 3:13.60 apache2
6479 www-data 25 0 38916 10m 4052 R 19.9 1.6 1:43.19 apache2
6441 www-data 25 0 38836 10m 4140 R 19.6 1.6 1:58.85 apache2
6481 www-data 25 0 38828 10m 4080 R 19.6 1.6 1:34.27 apache2
6458 www-data 25 0 38792 10m 4036 R 19.3 1.6 1:53.87 apache2
6749 root 16 0 2228 1140 856 R 0.3 0.2 0:00.36 top

husky01:~# sar
Linux 2.6.16.29-xenU (husky) 29-10-07
20:08:51 CPU %user %nice %system %iowait %steal %idle
20:15:01 all 91,20 0,00 1,06 0,00 7,73 0,00
20:25:01 all 67,92 0,00 1,51 0,54 6,61 23,42
20:35:01 all 3,40 0,00 0,79 1,25 2,61 91,95
20:45:01 all 47,69 0,00 1,07 0,70 4,34 46,21
20:55:01 all 52,55 0,00 2,64 1,35 4,64 38,82
21:05:02 all 89,45 0,00 2,62 0,00 7,92 0,00
21:15:01 all 78,04 0,00 3,66 0,41 7,83 10,06
21:25:02 all 81,97 0,00 2,21 0,24 7,60 7,97
Average: all 62,67 0,00 1,99 0,59 6,08 28,67

Vanwaar komt opeens deze apache load al de hele dag?
Op andere dagen is dit nog nooit een probleem geweest.
En wat kan ik er aan doen?

Bedankt.

Ondertussen draait er nog maar 1 apache met veel cpu usage:
8772 www-data 25 0 38796 9.9m 3736 R 94.3 1.5 0:48.91 apache2
9624 www-data 16 0 0 0 0 Z 0.3 0.0 0:00.16 apache2 <defunct>

Er is dus af en toe 1 zombie die even komt kijken, maar is zo snel weg dat ik niet kan zien wat het moederproces is.

ps xfau geeft me ook niet echt meer informatie hoe het komt dat apache zoveel verbruikt van cpu...

Iemand nog suggesties?

De zombie is opgelost, maar apache 2 blijft tegen 90% CPU load draaien.

http://yourcrime.net/server-status

Dit is de server-status.

Reactie van een collega-webhost:
"Het is telkens 1 dezelfde worker/server die de 100% load heeft. Daarbij is de url en de afzender telkens anders. Het lijkt dus niet 1 website of
1 bezoeker die dit veroorzaakt.
Ik denk dat de server ergens in blijft hangen."

Maar geen flauw idee wat ik nu kan/moet doen?

Iemand enige suggesties?

LeaseWeb
14/11/07, 01:29
Je kan eens kijken met strace.

strace -p $PID

waarbij $PID het proces nummer is van de thred die veel CPU tijd gebruikt.

MMaI
14/11/07, 10:51
als ik kijk naar je log via de serverstatus link krijg ik te zien dat http://gamecoll.com/ wel heel veel apache processen spawnt

misschien even kijken naar de scripting van deze site? of controleren of er geen serverside gamescript (denk aan slechte criminals scripts etc)

zoals je ook kan zien is het waarschijnlijk een lokaal script, bij veel opdrachten staat namelijk localhost (127.0.0.1) als source

Erik
14/11/07, 12:14
Mogelijk een exploit. Check ook eens je /tmp map en andere schrijfbare mappen of rare files.

klasje.be
14/11/07, 20:15
Jullie hadden dus gelijk.

Ik had in een script het volgende staan.

if(...){
$i=5;
}

...

while($i>0){
echo "...";
$i--;
}

Ik had er echter niet aan gedacht dat hij in een loopje zou geraken indien $i vanboven niet geset wordt, en had er ook niet bij stilgestaan dat de $i in een if zat.
De pagina zelf was een paar honderden regeltjes groot... ;-)
Raar dat dit niet duidelijk te zien was in server-status,
maar goed.

Door een te hoge php time-out instelling bleef het proces dan ook nog eens 15min draaien.

Dat hij veel processen spawnt, komt dit niet door een instelling in je apache?
Dat deze nu een beetje te hoog staat?

Als dit komt door pconnect: dit gebruiken we nergens.
Verder zou ik niet weten wat het veroorzaakt.