Page 1 of 1
TOP - httpd - details zum Prozess anzeigen?
Posted: 2003-03-05 10:35
by kwik
Top zeigt mir folgendes:
Code: Select all
10:21am up 241 days, 22:46, 1 user, load average: 1.55, 1.59, 1.46
82 processes: 79 sleeping, 2 running, 1 zombie, 0 stopped
CPU states: 94.8% user, 5.3% system, 0.0% nice, 853870.0% idle
Mem: 248028K av, 213656K used, 34372K free, 0K shrd, 2532K buff
Swap: 787176K av, 103856K used, 683320K free 87992K cached
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND
10745 wwwrun 18 0 25212 18M 16488 R 76.9 7.5 92:37 httpd
11196 wwwrun 9 0 16364 9840 7956 S 7.5 3.9 1:37 httpd
11899 wwwrun 9 0 15728 9236 7348 S 5.3 3.7 1:32 httpd
13953 wwwrun 9 0 16340 9988 4480 S 2.7 4.0 1:01 httpd
10823 mysql 9 0 20644 16M 15980 S 2.1 6.9 17:26 mysqld
19112 root 11 0 960 960 740 R 0.5 0.3 0:01 top
16150 wwwrun 9 0 15944 9572 4468 S 0.1 3.8 0:33 httpd
...
D.h. einer von meinen httpds verbraucht 76,9% (geht hoch bis 98% wenn er mehr bekommen kann), anderen httpd weniger. Wie kann ich nun herausfinden, was dieser eine Prozess genau macht um zu sehen, warum gerade der so viel Resourcen verbraucht?
Meine httpd-conf (Auszug):
Code: Select all
Timeout 300
KeepAlive On
MaxKeepAliveRequests 1500
KeepAliveTimeout 5
MinSpareServers 5
MaxSpareServers 5
StartServers 5
MaxClients 100
MaxRequestsPerChild 10000
Danke im Voraus ;)
Re: TOP - httpd - details zum Prozess anzeigen?
Posted: 2003-03-05 10:42
by [tom]
Kwik wrote:
Code: Select all
CPU states: 94.8% user, 5.3% system, 0.0% nice, 853870.0% idle
Ich frag mich eher, wie TOP die Idle-Time bei Dir ermittelt.
Und dann hast Du noch ein Zombie. Wegen dem httpd: Ist das immer so (ständig) oder nur zwischendurch mal?
[TOM]
Re: TOP - httpd - details zum Prozess anzeigen?
Posted: 2003-03-05 11:02
by kwik
Ist erst seit heute, ich habe allerdings gestern an der httpd.conf rumgespielt. Den Server dann aber einige Stunden beobachtet und nichts entdeckt. Der httpd bleibt die ganze Zeit so fordernd und nimmt sich alles, was er kriegen kann...
idle spinnt. Meistens richtig, zwischendrin dann dieser komische Wert für einen Anzeigeintervall.
Zombie ist auch httpd:
Code: Select all
10:59am up 241 days, 23:24, 1 user, load average: 1.12, 1.32, 1.34
103 processes: 97 sleeping, 3 running, 3 zombie, 0 stopped
CPU states: 0.1% user, 0.0% system, 0.1% nice, 0.0% idle
Mem: 248028K av, 206404K used, 41624K free, 0K shrd, 2728K buff
Swap: 787176K av, 103848K used, 683328K free 78192K cached
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND
10745 wwwrun 17 0 25212 18M 16488 R 94.2 7.5 125:41 httpd
20646 root 13 0 952 948 728 R 3.8 0.3 0:00 top
20633 wwwrun 9 0 0 0 0 Z 1.9 0.0 0:00 httpd <defunct>
Ne Idee?
Re: TOP - httpd - details zum Prozess anzeigen?
Posted: 2003-03-05 11:15
by captaincrunch
Wenn du ganz genau wissen willst, was der Prozess macht, hilft dir
strace -p{PID} weiter. Dort wirst du dann sämtliche Syscalls und sonstiges durchrattern sehen. Genauer geht's eigentlich kaum ...

Re: TOP - httpd - details zum Prozess anzeigen?
Posted: 2003-03-05 11:42
by kwik
Danke!
Aber wenn ich mir damit PID 10745 anschaue kommt gar nichts rüber. Bei allen anderen httpd-PIDs schon. Jetzt kann ich natürlich einfach den apache neu starten und das Problem ist gelöst. Aber die Ursache nicht. Wie könnte ich dahinter kommen?
Re: TOP - httpd - details zum Prozess anzeigen?
Posted: 2003-03-05 11:46
by captaincrunch
Auch ein Apache-Prozess kann sich mal aufhängen. Wirklich rausfinden wirst du das wohl nur dadurch können, dass du den Prozess mit einem Signal killst, das den Prozess veranlasst, einen coredump zu schreiben. Wenn du den analyiserst, wirst du dahinterkommen.
Meine Empfehlung : starte den Indianer neu, und beobachte das ganze ein bisschen. Wenn's nicht wieder auftritt, würde ich mir keine großen Gedanken darum machen.
Re: TOP - httpd - details zum Prozess anzeigen?
Posted: 2003-03-05 11:47
by cyberline
CaptainCrunch wrote:Wenn du ganz genau wissen willst, was der Prozess macht, hilft dir
strace -p{PID} weiter. Dort wirst du dann sämtliche Syscalls und sonstiges durchrattern sehen. Genauer geht's eigentlich kaum ...

strace gibts nur unter Suse ?
gibts sowas für redhat ?
Re: TOP - httpd - details zum Prozess anzeigen?
Posted: 2003-03-05 11:48
by captaincrunch
strace gibts nur unter Suse ?
gibts sowas für redhat ?
Wer sagt das ?
Sicher gibt's das ganze auch für RedHat, ich hab aber gerade keine Kiste hier, wo ich nachschauen könnte, in welchem Paket das steckt. Sollte aber eigentlich schon bei der Grundinstallation dabei sein.
Re: TOP - httpd - details zum Prozess anzeigen?
Posted: 2003-03-05 11:51
by cyberline
CaptainCrunch wrote:strace gibts nur unter Suse ?
gibts sowas für redhat ?
Wer sagt das ?
Sicher gibt's das ganze auch für RedHat, ich hab aber gerade keine Kiste hier, wo ich nachschauen könnte, in welchem Paket das steckt. Sollte aber eigentlich schon bei der Grundinstallation dabei sein.
Na, is net dabei, aber habs gefunden bei rpmfind :)
Re: TOP - httpd - details zum Prozess anzeigen?
Posted: 2003-03-05 11:57
by jtb
Hi,
ich würde "MaxRequestsPerChild 10000" ein bißchen niedriger setzen..
Das garantiert, dass ein Child irgendwann mal gekillt wird - bei dir aber erst nach 10.000 Requests..
Auch "MaxKeepAliveRequests 1500" erscheint mir ein bißchen zu hoch und kann deinen Server stark Performance rauben..
Re: TOP - httpd - details zum Prozess anzeigen?
Posted: 2003-03-05 11:57
by cyberline
Gibts auch ein Programm, welches nur Anzeigt in welchem Ordner der apache Prozess momentan liest/schreibt ?
Ich brauch das weil ich manche Prozesse habe die 25 und mehr % CPU Time brauchen und ich wissen, welche Seite das verrusacht...
Re: TOP - httpd - details zum Prozess anzeigen?
Posted: 2003-03-05 12:06
by captaincrunch
Gibts auch ein Programm, welches nur Anzeigt in welchem Ordner der apache Prozess momentan liest/schreibt ?
Ich brauch das weil ich manche Prozesse habe die 25 und mehr % CPU Time brauchen und ich wissen, welche Seite das verrusacht...
Ein spezielles Programm dafür kenne ich nicht. Informationen über Prozesse kannst du aber auch selbser ganz gut unter /proc finden.
Mach mal ein
cd /proc/{PID}.
cwd ist immer der Working Path des Prozesses, u.U. könnte
environ noch ganz interessant sein :
Re: TOP - httpd - details zum Prozess anzeigen?
Posted: 2003-03-05 12:10
by kwik
Jtb wrote:
ich würde "MaxRequestsPerChild 10000" ein bißchen niedriger setzen..
Das garantiert, dass ein Child irgendwann mal gekillt wird - bei dir aber erst nach 10.000 Requests..
Ich habe es mal auf 5.000 gesetzt. Um sicher zu gehen: Das gilt pro httpd-Prozess, erst nach 10.000 wird dieser eine Prozess neu gestartet, nicht nach 10.000 Request an den Apache überhaupt?
Jtb wrote:
Auch "MaxKeepAliveRequests 1500" erscheint mir ein bißchen zu hoch und kann deinen Server stark Performance rauben..
Habe es mal auf 500 gesetzt. Werde nun weiterbeobachten - und berichten ;)
Re: TOP - httpd - details zum Prozess anzeigen?
Posted: 2003-03-05 12:11
by kwik
Ich frage mich aber, wo nach wie vor der Zombie herkommt. Das habe ich erst, seitdem ich das UBB auf phpBB umgestellt habe.
Re: TOP - httpd - details zum Prozess anzeigen?
Posted: 2003-03-05 12:21
by jtb
Kwik wrote:Jtb wrote:
ich würde "MaxRequestsPerChild 10000" ein bißchen niedriger setzen..
Das garantiert, dass ein Child irgendwann mal gekillt wird - bei dir aber erst nach 10.000 Requests..
Ich habe es mal auf 5.000 gesetzt. Um sicher zu gehen: Das gilt pro httpd-Prozess, erst nach 10.000 wird dieser eine Prozess neu gestartet, nicht
nach 10.000 Request an den Apache überhaupt?
yup, das gilt pro Child..
Auszug aus der Doku:
The MaxRequestsPerChild directive sets the limit on the number of requests that an individual child server process will handle. After MaxRequestsPerChild requests, the child process will die. If MaxRequestsPerChild is 0, then the process will never expire.
Setting MaxRequestsPerChild to a non-zero limit has two beneficial effects:
it limits the amount of memory that process can consume by (accidental) memory leakage;
by giving processes a finite lifetime, it helps reduce the number of processes when the server load reduces.
Kwik wrote:Jtb wrote:
Auch "MaxKeepAliveRequests 1500" erscheint mir ein bißchen zu hoch und kann deinen Server stark Performance rauben..
Habe es mal auf 500 gesetzt. Werde nun weiterbeobachten - und berichten ;)
jo, 500 sollten ok sein.. Default ist 100..
Du musst halt wie gesagt beobachten und die Parameter an dein System anpassen..
Re: TOP - httpd - details zum Prozess anzeigen?
Posted: 2003-03-06 02:16
by kwik
Weiter gehts...
Code: Select all
2:06am up 242 days, 14:32, 1 user, load average: 3.01, 3.07, 2.95
71 processes: 66 sleeping, 5 running, 0 zombie, 0 stopped
CPU states: 99.4% user, 0.5% system, 0.0% nice, 0.0% idle
Mem: 248028K av, 233656K used, 14372K free, 0K shrd, 2508K buff
Swap: 787176K av, 81196K used, 705980K free 110972K cached
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND
23834 wwwrun 20 0 24096 15M 4780 R 34.2 6.3 20:56 httpd
23836 wwwrun 14 0 25784 15M 4384 R 32.8 6.3 50:47 httpd
23833 wwwrun 14 0 25524 17M 4992 R 32.2 7.1 19:24 httpd
...
Inzwischen haben mir User gemeldet:
Code: Select all
Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 184320 bytes) in /home/www/webxx/html/forum/includes/template.php(127) : eval()'d code on line 111
Nun hatte ich den Wert in der php.ini schon auf 16M gesetzt. Könnte es hier einen Zusammenhang geben - httpd-cpu-% und php-mem?
Was kann ich dagegen tun - ausser den Wert in der php.ini immer höher treiben?
Re: TOP - httpd - details zum Prozess anzeigen?
Posted: 2003-03-06 09:12
by captaincrunch
Was kann ich dagegen tun - ausser den Wert in der php.ini immer höher treiben?
Vernüntige Scripte einsetzen, die dir nicht die geamten Ressourcen ziehen ...

Re: TOP - httpd - details zum Prozess anzeigen?
Posted: 2003-03-06 10:38
by kwik
CaptainCrunch wrote:Was kann ich dagegen tun - ausser den Wert in der php.ini immer höher treiben?
Vernüntige Scripte einsetzen, die dir nicht die geamten Ressourcen ziehen ...

phpBB gehört nicht dazu? :roll:
Re: TOP - httpd - details zum Prozess anzeigen?
Posted: 2003-03-06 11:37
by captaincrunch
phpBB gehört nicht dazu?
In dem Fall ist
a) dein Server so stark frequentiert, dass er zu klein dimensioniert ist, oder
b) du hast grundsätzliche Probleme mit deiner Apache / PHP-Konfiguration
Re: TOP - httpd - details zum Prozess anzeigen?
Posted: 2003-03-06 11:43
by kwik
Und genau das möchte ich herausfinden ;) Vorher hatte ich die Probleme mit UBB nicht. Und es kann auf dem Server (rootserver) auch ruhig mal "viel" los sein, ohne dass die Serverlast hochgeht. Aber irgendwann gibt es einen Auslöser und die Prozesse hängen, bzw brauchen wie oben beschrieben so viel Resourcen. Habe inzwischen an den Configs ja einiges geändert und beobachte weiter. Seit der letzen Ã?nderung läuft alles im grünen Bereich (load < 0.4). Ich hoffe das bleibt so, aber ich glaube da nicht wirklich dran :?
Re: TOP - httpd - details zum Prozess anzeigen?
Posted: 2003-03-12 21:24
by swosher
mmh ich habe auch mehrere stark frequentierte phpbb boards laufen ohne probleme..
es kann natürlich sein, wenn du den ein oder anderen hack eingebaut hast, das dieser nicht sauber ist..
ich habe zb bei phpkit festgestellt, das es nicht ganz sauber programmiert ist, was das schliessen der db verbindung angeht ..
aber mit phpbb habe/hatte ich bisher keine probleme...
Re: TOP - httpd - details zum Prozess anzeigen?
Posted: 2003-03-12 21:30
by kwik
Ich habe > 60 MODs installiert. Aber jeden einzelnen getestet und bei keinem grössere Probleme festgestellt. Seit der letzten httpd.conf Ã?nderung läuft alles prima.
Re: TOP - httpd - details zum Prozess anzeigen?
Posted: 2003-03-14 17:28
by nn4l
Ich habe auch gelegentlich (alle paar Monate einmal) abgestürzte httpd-Prozesse, die 100% CPU verbrauchen. Habe aber nie die Ursache rausgefunden, scheint was mit zu hoher Last bei zuwenig RAM zu tun zu haben.
Eine Lösung wäre, im apachectl Skript den ulimit Befehl zu nutzen, um die maximale CPU-Zeit pro Prozess z.B. auf 8 Std. zu begrenzen. Danach wird der Prozess abgeschossen.