PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : zu hohe CPU Last



KN4CK3R
08.02.10, 16:37
Hallo,

seit gut einer Woche reagiert mein Server nur noch sehr langsam in Verbindung mit Webseiten. SSH funktioniert, soweit ich das einschätzen kann, aber noch recht gut. Laut "top" hat mein Server eine viel zu hohe CPU Last.

Cpu(s): 63.3%us, 35.3%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 1.3%si, 0.0%st

63.3+35.3+1.3 = 99.9

Das versteh sogar ich als Windowsjünger, dass sowas hohes auch bei Linux nichts gutes bedeuten kann. Nur ich verstehe nicht wie der Wert zustande kommt. "top" listet doch, soweit ich das erkenne, die Prozesse in absteigender CPU Nutzung auf. Wenn ich die Werte dann zusammenzähle, komme ich meistens auf maximal 40%, was an sich aber auch irgendwie zu hoch ist, da der Server bloß 3 Webprojekte beherbergt (2 kleine, 1 normal großes).

http://www.abload.de/thumb/topi27t.jpg (http://www.abload.de/image.php?img=topi27t.jpg)

Kann ich irgendwie genauere Informationen zu der CPU Auslastung bekommen, damit ich herausfinde an was das Problem liegen kann?

Auf dem Server laufen Apache mit PHP und MySQL und Ubuntu. Falls ihr irgendwelche Configdateien braucht, sagt bescheid. Ich weiß nicht welche für solche Probleme relevant sind, da ich dadran eh nichts geändert habe in der Zeit.

greetz KN4CK3R

derRichard
08.02.10, 16:40
zeig uns doch mal die ausgabe von top.
bzw. welche prozesse brauchen am meisten cpu-zeit?

//richard

KN4CK3R
08.02.10, 16:45
hab grad ein Bild noch reineditiert, kam aber wohl zu spät :<

Was genau viel verbraucht, weiß ich ja eben nicht, weil das ein kommen und gehen ist an der Spitze. Kein Prozess bleibt lange da.

greetz KN4CK3R

derRichard
08.02.10, 16:48
dein system hat einfach viel zu tun, sonst nichts.
wenn man alle prozesse zusammen zählt kommt man recht leicht auf die 60% user. die restlichen 35% für system kommen von selbst.
(die prozesse verwenden ja einige systemcalls).

hth,
//richard

BedriddenTech
08.02.10, 16:48
Da sind ein paar PHP-Zombies. Wenn jeder von denen da 1,3% braucht, sind wir recht schnell bei 40% und mehr. Guck mal im error_log Deines Indianers, was da los ist mit PHP.

cane
08.02.10, 16:50
Ich sehe 8 Zombie Prozesse - reboote den Server bitte einmal.

mfg
cane

TheDarkRose
08.02.10, 16:55
und warum wird überhaupt php-cgi gestartet? Normalerweiße bindet man PHP ja als Apachemodul ein.

KN4CK3R
08.02.10, 16:58
der wurde in den letzten Tagen schon oft neugestartet, mit dem Ergebnis, dass er eigentlich zeitgleich wieder langsam war.

In der error_log hab ich schon nachgeschaut und das einzige was auffällt, ist, dass recht viele "File does not exist" Meldungen auftauchen. Außerdem noch sporadisch sowas hier, mitdem ich aber nichts anzufangen wusst:


[Mon Feb 08 17:50:50 2010] [error] [client 82.82.87.245] (70007)The timeout specified has expired: ap_content_length_filter: apr_bucket_read() failed

Außer diesen beiden gibt es nichts in der error_log. Die Logeinstellung ist auf "warn".


und warum wird überhaupt php-cgi gestartet? Normalerweiße bindet man PHP ja als Apachemodul ein.
ich hab nichts dadran umgestellt, muss von Anfang an so gewesen sein.

greetz KN4CK3R

derRichard
08.02.10, 17:02
die php-zombies können auch sein, wenn ein php-script blödsinn macht.
und einfach so auf mod_php5 umstellen ist nicht so toll.
mod_php5 ist eine sicherheitshölle...

das php cgi wird schon seinen grund haben.

//richard

KN4CK3R
08.02.10, 17:07
gibt es ein Möglichkeit sich anzeigen zu lassen, ob und falls ja welches PHP Script Blödsinn macht?

greetz KN4CK3R

derRichard
08.02.10, 17:08
das php-script solle unter den geöffneten dateien vom prozess zu finden sein.

hth,
//richard

drcux
08.02.10, 17:10
und warum wird überhaupt php-cgi gestartet? Normalerweiße bindet man PHP ja als Apachemodul ein.

Kannst du diese Erkenntnis genauer begründen?

KN4CK3R
08.02.10, 17:13
das php-script solle unter den geöffneten dateien vom prozess zu finden sein.

hth,
//richard
mit welchem Befehl kann ich mir die ausgeben lassen?

greetz KN4CK3R

derRichard
08.02.10, 17:16
mit welchem Befehl kann ich mir die ausgeben lassen?

greetz KN4CK3R

jetzt sind wir schon an dem punkt wo es um grundlagen geht, die man als linux-admin kennen sollte.

in /proc/<pid>/fd/ findest du die geöffneten dateien von einem prozess.

//richard

KN4CK3R
08.02.10, 17:23
blöde Frage, aber wenn die doch immer nur eine Sekunde da sind, komm ich ja nicht in den Ordner rein um zu schauen welche Dateien da geöffnet wurden.

Ich habe außerdem einen neuen Screenshot gemacht, der mich irgendwie an der Anzeige zweifeln lässt.

http://www.abload.de/thumb/top2y2bq.jpg (http://www.abload.de/image.php?img=top2y2bq.jpg)

Ich zähle auf dem Screenshot nur ungefähr 5,5% und nicht über 50% so wie es oben steht?!

greetz KN4CK3R

derRichard
08.02.10, 17:26
wenn der zombie immer nur ganz ganz kurz da ist, dann ist es auch kein "echter" zombie.
darüber würde ich mir keine gedanken machen.
auf dem bild hast du nur 30% und nicht 50%.

dein webserver hat einfach viel zu tun. pasta.
//richard

gropiuskalle
08.02.10, 17:27
man pidof

...und ich würde mal vorschlagen, dass Du die mutmaßliche Urlaubsvertretung an jemand anderen abgibst.

TheDarkRose
08.02.10, 17:31
Kannst du diese Erkenntnis genauer begründen?
Ich habs so gelernt, das man es als Modul einbindet, weil somit die Performance besser ist. Mehr kann ich auch nicht begründen. :ugly:

KN4CK3R
08.02.10, 17:31
Scherzkeks, wer nen Server mietet um ne Webseite draufzuklatschen, muss nicht zwangsläufig gleich zum Linuxkenner werden.

Und dass der Server viel zu tun hat, merk ich ja. Ich wüsste nur gern den Grund, weil es nicht sein kann, dass es minutenlang dauert, bis sich eine Seite aufbaut, und das obwohl er nichts anderes in der Zeit tun muss. Keine Backups, kein nichts. Die 50% sind natürlich die 31% und 19% zusammenaddiert. Sind ja nicht jeweils 100%...

greetz KN4CK3R

derRichard
08.02.10, 17:33
Scherzkeks, wer nen Server mietet um ne Webseite draufzuklatschen, muss nicht zwangsläufig gleich zum Linuxkenner werden.


doch das musst du.

gropiuskalle
08.02.10, 17:34
Scherzkeks, wer nen Server mietet um ne Webseite draufzuklatschen, muss nicht zwangsläufig gleich zum Linuxkenner werden.

Doch, zumindest sofern auf diesem Server ein Linux läuft. Hier mal etwas → angemessene Lektüre (http://serverzeit.de/FreeBSD/admins-haften/).

drcux
08.02.10, 17:43
Ich habs so gelernt, das man es als Modul einbindet, weil somit die Performance besser ist. Mehr kann ich auch nicht begründen. :ugly:

Das ist aber auch fast der einzige Vorteil und für den hausgebrauch gebe ich dir Recht. Aber ein Webserver mit unterschiedlichen VHosts/Kunden wird bestimmt nicht mit mod-php gefahren.

TheDarkRose
08.02.10, 17:59
Aber ein Webserver mit unterschiedlichen VHosts/Kunden wird bestimmt nicht mit mod-php gefahren.
Hast vielleicht ne Lektüre für mich, warum man das macht?

derRichard
08.02.10, 18:03
Hast vielleicht ne Lektüre für mich, warum man das macht?

bei mod_php laufen alle php-scripte mit rechten vom apachen.
wenn man php als cgi betreibt kann man jedem vhost eigene rechte geben.

//richard

drcux
08.02.10, 18:13
Hast vielleicht ne Lektüre für mich, warum man das macht?

http://www.rootforum.org/wiki/Vergleich_der_Anbindung_von_PHP_als_Apache-Modul_CGI_und_FastCGI_%28de%29

TheDarkRose
08.02.10, 18:38
Man lernt halt nie aus. Dankeschön. Aber bei nem eigenen Server ist das nicht so schlimm, wenn nur die eigenen Anwendungen rennen, oder?

derRichard
08.02.10, 18:54
sobald jemand ein php-script übernimmt hat er die selben rechte die der webserver.
das muss dir bewusst sein.

//richard

KN4CK3R
10.02.10, 17:16
um nochmal aufs eigentliche Thema zurückzukommen. Wie kann meiner Server so eine hohe CPU Auslastung haben, wenn top kein Programm anzeigt, welches diese verursacht?

http://www.abload.de/thumb/top2y2bq.jpg (http://www.abload.de/image.php?img=top2y2bq.jpg)

greetz KN4CK3R

Rain_maker
10.02.10, 17:46
Wie kann meiner Server so eine hohe CPU Auslastung haben, wenn top kein Programm anzeigt, welches diese verursacht?


Schlecht programmiertes Rootkit? :ugly: