Page 1 of 1
Performance
Posted: 2004-12-02 21:39
by marky
Hallo zusammen,
ich habe folgendes Problem: mein Root-Server wird nach zwei bis drei Tagen derart langsam, dass er bis zu zehn Sekunden braucht um auf eine Anfrage Daten zu senden. Nach einem Reset ist wieder alles okay, sodass es nicht an der aktuellen Belastung liegen kann. Wie kann ich feststellen, was das Problem ist. Gibt es eine Möglichkeit, einzusehen, was aktuell am meisten Last verursacht?
Es handelt sich um einen Celeron 1200 MHz, der mit 4.000 Besuchern am Tag und unter 10 GB pro Monat nicht überlastet sein dürfte, oder?
Danke!
Re: Performance
Posted: 2004-12-02 21:46
by Joe User
Persistente Verbindungen in der php.ini deaktiviert?
Know your tools or die.
Posted: 2004-12-03 02:43
by kawfy
mit free(1) und uptime(1) kommt man da nicht weiter ...
- top(1)
- vmstat(1)
- mysqladmin(1), z. B. "mysqladmin processlist", evtl. das Tool "mytop" besorgen
- ps aux, geeignet sortiert, z. B. "ps aux | sort -k 3 -n -r" oder ps aux | sort -k 4 -n -r" (vgl. mit "top")
:!: Die Beurteilung der Ausgabe dieser Tools erfordert Erfahrung.
Re: Performance
Posted: 2004-12-03 11:24
by kuntho
ich würde ganz pauschal mal auf ein Speicherproblem tippen. Versuchs mal mit
top
und dann mit <SHIFT>+<M> die laufenden Prozesse nach Speicherbedarf listen. Hatte mal ein ähnliches Problem mit dem Sapamassassin, der hat so viel speicher gefressen, dass die Kiste nach paar Stunden nur noch mit swappen beschäftigt war. Zumindest kannst Du mit top erst mal feststellen, ob der Prozessor oder das Memory der Engpass ist.
Re: Performance
Posted: 2004-12-03 12:23
by marky
Heute morgen hatte ich ein Reset, un im Moment gibt "top" wie folgt aus:
12:17pm up 12 min, 1 user, load average: 0.04, 0.08, 0.08
65 processes: 62 sleeping, 2 running, 0 zombie, 1 stopped
CPU states: 7.3% user, 2.7% system, 0.0% nice, 89.9% idle
Mem: 248508K av, 85420K used, 163088K free, 0K shrd, 20236K buff
Swap: 265064K av, 0K used, 265064K free 34524K cached
Sieht eigentlich ganz gut aus. Ich will nun mal sehen, wie es ist, wenn der Server wieder so lahm ist.
Re: Performance
Posted: 2004-12-03 15:14
by bungeebug
Moin.
ich weiß nich was du alles laufenlässt aber 7.2% CPU Last im Leerlauf ist ne Menge ...
Re: Performance
Posted: 2004-12-03 17:15
by kuntho
wichtig wäre die ausgabe von top, wenn die maschine in die knie geht. das war ja nach 12 minuten offensichtlich noch nicht der fall.
Re: Performance
Posted: 2004-12-03 18:41
by masterchief
Ja, zeig mal [b]top[/b] und [b]vmstat[/b] wenn die Kiste hängt. Wichtig ist bei vmstat das si und so.
Evtl. läuft irgendein Skript bzw. wieviel Prozesse laufen wenns langsam ist ?
Re: Performance
Posted: 2004-12-03 21:01
by Anonymous
Vielleicht gibts auch Speicherlecks auf der Kiste.
Mal beobachten ob sich da was mit Speicher 'vollsaugt' je laenger es laeuft..?
U.U. kann dann z.b. ein graceful restart des Apache sehr helfen, manchmal wird jedoch ein harter Restart noetig.
Re: Performance
Posted: 2004-12-05 13:56
by marky
So, der Server ist heute morgen soweit gewesen, dass er swappen musste:
1:44pm up 2 days, 1:39, 1 user, load average: 0.58, 0.74, 0.83
75 processes: 73 sleeping, 2 running, 0 zombie, 0 stopped
CPU states: 41.2% user, 1.3% system, 0.0% nice, 57.3% idle
Mem: 248508K av, 221304K used, 27204K free, 0K shrd, 55988K buff
Swap: 265064K av, 1716K used, 263348K free 74612K cached
Das meiste Memory (jeweils 2-3 %) brauchen Prozesse des Users "wwwrun" und zwar die Befehle "httpd". Ich denke das ist die normale Ausgabe von Webseiten und nicht sonderlich ungewöhnlich, zumal diese Prozesse kaum CPU brauchen.
Dann habe ich noch etliche Prozesse des Users "mysql", sie benötigen durchschnittlich 2-3 % CPU, jedoch weniger Memory (1-2%) und erscheinen mir auch normal.
Auffällig waren jedoch vier bis fünf Prozesse des Users "wwwrun", die jeweils 15 bis 25 % CPU benötigten, auch einigen Speicher belegten und schon seit zig Stunden liefen. Befehl war hier auch "httpd". Nachdem ich sie gekillt habe, war der Server wieder fix und swappen musste er auch nicht mehr. Wodurch kann soetwas entstehen? Und wie kann man das vermeiden?
Re: Performance
Posted: 2004-12-05 16:28
by Joe User
marky wrote:Wodurch kann soetwas entstehen? Und wie kann man das vermeiden?
http://www.rootforum.org/forum/viewtopi ... 326#207326
Re: Performance
Posted: 2004-12-16 09:50
by marky
Also heute war der Server wieder soweit, nachdem er wohl gestern ziemlich gefragt war:
ich hatte einen Prozess des Useres wwwrun mit dem Command httpd, der 83 % der CPU in Anspruch nahm und schon mehrer hundert Minuten alt war. Wie kann ich feststellen woran das konkret gelegen hat. Sicher, hier wurde irgend eine HTML- bzw. PHP-Seite ausgegeben, aber welche ist die mit dem Problem?
Re: Performance
Posted: 2004-12-16 12:19
by kuntho
marky wrote:So, der Server ist heute morgen soweit gewesen, dass er swappen musste:
1:44pm up 2 days, 1:39, 1 user, load average: 0.58, 0.74, 0.83
75 processes: 73 sleeping, 2 running, 0 zombie, 0 stopped
CPU states: 41.2% user, 1.3% system, 0.0% nice, 57.3% idle
Mem: 248508K av, 221304K used, 27204K free, 0K shrd, 55988K buff
Swap: 265064K av, 1716K used, 263348K free 74612K cached
gib ner maschine swap und sie wird swappen, das ist doch ganz normal, und 1,7MB swap used, worüber beschwerst du dich?
interessant ist die ausgabe von top, vmstat, wenn die maschine am anschlag läuft. apache access- und errorlog? messages? warn? ist da was verwertbares drin, wenn das prob ein httpd-prozess ist?
Re: Performance
Posted: 2004-12-19 10:56
by Anonymous
Hallo rootforum.org/,
ich habe vermutlich das gleiche Problem. Der User wwwrun verbraucht mit einigen httpd Prozessen sehr viel Ressourcen, v.a. CPU. Nachdem ich diese Prozesse beendet habe, läuft der Server einige Stunden sehr schnell, wird jedoch mit der Zeit immer langsamer.
Hier die Ausgabe von
uptime von heute morgen:
10:36am up 9 days 19:44, 1 user, load average: 4.01, 3.79, 3.70
Gestern Mittag, nachdem ich die störenden Prozesse gekillt habe, waren die load average Werte alle knapp über 1. Gestern Abend waren die Werte dann schon über 2. Zu ihren besten Zeiten waren die Werte aber auch schonmal bei über 30. 8O
Hier die Ausgabe von
top von jetzt:
Code: Select all
10:39am up 9 days, 19:46, 1 user, load average: 3.65, 3.73, 3.69
117 processes: 110 sleeping, 6 running, 1 zombie, 0 stopped
CPU states: 97.6% user, 2.3% system, 0.0% nice, 0.0% idle
Mem: 1016776K av, 791064K used, 225712K free, 0K shrd, 96492K buff
Swap: 512024K av, 1988K used, 510036K free 535844K cached
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND
24046 wwwrun 25 0 16232 15M 11040 R 32.6 1.5 414:00 httpd
28091 wwwrun 25 0 16276 15M 10976 R 31.2 1.6 19:59 httpd
31797 wwwrun 25 0 16052 15M 11044 R 29.8 1.5 365:34 httpd
12011 wwwrun 15 0 0 0 0 Z 1.9 0.0 0:00 httpd <defunct>
12014 wwwrun 15 0 12368 12M 11048 S 1.1 1.2 0:00 httpd
31467 wwwrun 15 0 15560 15M 10996 S 0.5 1.5 0:34 httpd
11965 gamesfin 15 0 928 928 696 R 0.3 0.0 0:00 top
25743 mysql 15 0 33176 32M 3000 S 0.1 3.2 21:43 mysqld
1 root 15 0 236 236 204 S 0.0 0.0 0:15 init
...
Und hier noch
vmstat:
Code: Select all
procs memory swap io system cpu
r b w swpd free buff cache si so bi bo in cs us sy id
5 1 0 1988 231988 96504 536016 0 0 2 15 34 1 90 2 8
3 mal täglich die Prozesse zu killen scheint mir nicht die sinnvollste Lösung zu sein. Benötigt ihr noch weitere Daten? Ich hoffe, ihr könnt mir weiterhelfen.
Schon jetzt vielen Dank für eure Mühe!
Re: Performance
Posted: 2004-12-19 13:30
by muemmel
Hi.
Ich hatte schonmal das Problem dass eine Version von PHP 4.3(ich meine es wäre Subversion 8 gewesen) im Zusammenspiel mit phpMyAdmin (funktionierte auch in eigenen PHP-Scripten) und nem MySQL Server 4.0 (Subversion 17 meine ich) dazu führte, dass bei einigen Großen (sprich: umfangreichen) Abfragen oder auch bei vielen kleinen Abfragen nen Fehler entsteht.
Resultat: Der entsprechende httpd-Prozess hing und lies sich nur manuell killen. Nen Update von (ich meine PHP wärs gewesen) auf ne neuere Version hat das Problem beseitigt.
Sorry, dass ich dir keine genaueren Auskünfte geben kann, aber das is schon ewig her (März diesen Jahres).
Re: Performance
Posted: 2004-12-23 08:38
by marky
Also wie Ibot80 beschrieben hat, ist es bei mir tatsächlich auch.
Bevor ich jedoch ein Update wage und einen Serverausfall riskiere, möchte ich das Problem jedoch gerne näher eingrenzen. Jetzt ist meine Frage: Wie kann ich herausfinden, welche konkrete Anfrage zu diesem Prozess führte. Der Command "httpd" bedeutet ja nur, dass es sich um eine Seitenausgabe des Apache handelt. Wie kann ich aber feststellen, um welche Seite (z.B. "/home/www/web1/html/index.php") es geht? Kann man sich zu den einzelnen Prozessen derartige Details anzeigen lassen?
Danke!
Re: Performance
Posted: 2005-01-08 19:06
by Anonymous
Ich habe inzwischen PHP Version 4.3.10 installiert und der Fehler erscheint nicht mehr. Woran es jetzt genau lag, kann ich nicht sagen.
Anscheinend tritt der Fehler aber bei "vielen" mysql Zugriffen auf, so wie Muemmel es beschrieben hat. Ich hatte vorher PHP 4.2.2. laufen und alles lief problemlos. Dann kam eine neue Website mit viel Traffic hinzu (25GB, keine Downloads) und der httpd Prozess hat sich "aufgehängt".