Ich habe Ladeprobleme mit meinem Server und obwohl ich ein etwas erfahrener Linux-Administrator bin, habe ich jetzt keine Ideen mehr.
Das Problem ist eine langsam aber stetig zunehmende Belastung des Servers ohne erkennbaren Grund.
Der Server ist ein AMD Athlon 64 X2 Dual Core Prozessor 6000+ mit 6 GB RAM. Es läuft Debian Stable mit Linux gir 2.6.26-2-amd64 # 1 SMP Mi Aug 19 22:33:18 UTC 2009 x86_64 GNU / Linux.
Auf dem Server laufen grundsätzlich Lighttpd, mehrere FastCGI-PHP-Prozesse und eine MySQL-Datenbank. Typische Webserver-Aufgaben.
Die CPU ist nie wirklich voll ausgelastet und der Speicher wird hauptsächlich für Puffer und Cache verwendet, was in Ordnung ist. Ich habe versucht, die verschiedenen Dienste neu zu starten, um zu sehen, ob einer von ihnen die Last wieder verringern würde, aber ohne Glück.
Hier sind Grafiken, die Last, CPU und IOStat zeigen:
Die Frage ist also: Was kann eine langsam aber stetig wachsende Last verursachen? Und wie finde ich heraus, was dafür verantwortlich ist?
Update: Ich habe vergessen zu erwähnen, dass beim Neustart des Servers die Last auf 0,3 bis 0,6 sinken und in den nächsten Wochen langsam wieder ansteigen wird.
Antworten:
Jeder Zombie-Prozess erhöht die Last um 1,0. Möglicherweise sehen Sie eine Ansammlung von Zombies.
quelle
for N in {1..100} ; do sleep 60 & done ; exec sleep 500
sollte das Tippen ausreichen, um eine hohe Last zu verursachen. Aber das tut es nicht. Dieser Befehl erzeugt 100 Zombies, aber die Last auf meinem Computer blieb unter 1.Bei der Beantwortung einer anderen Frage habe ich einen hervorragenden Hinweis gefunden .
Die Suche nach Prozessen im Status 'D' zeigt vier PHP-Prozesse, die eine Weile zu hängen scheinen und den "Schritten" in der Lastkurve entsprechen:
Das scheint also das Problem zu sein. Ich muss jetzt herausfinden, während diese Prozesse hängen und wie man es regelt. Vielen Dank an alle.
quelle
Ich vermute, dass der Server IO ausgehungert ist. Vielleicht sollten Sie die iotop-Statistiken zu den Grafiken hinzufügen
Ich frage mich, ob Sie eine Aktivität pro Anwendung haben können, die auch ein Faktor für die Serverauslastung ist
http://rt.wiki.kernel.org/index.php/I/Otop_utility
anderes tool ist dstat
quelle
Wenn es I / O wäre, würde er das iowait (pink) auf den CPU-Diagrammen sehen.
quelle
Diese Art von Problemen kam häufig von der Festplatte, die nicht schnell genug ist, um die für die MySQL-Datenbank und den HTTP-Server erforderlichen Daten bereitzustellen. Sie sollten sich den Befehl iostat ansehen
quelle
Im Allgemeinen ist es keine schlechte Sache, eine hohe Serverauslastung zu haben. es bedeutet, dass Sie nicht untätig sitzen und weniger tun, als Sie es sonst könnten. 80% -90% Auslastung Ihrer Gesamtkapazität (mit einigen "Burst" -Räumen) ist normalerweise gefragt. Ich würde empfehlen, die Ausgabe von mpstat und vmstat zu überprüfen. Insbesondere die ersten zwei Zahlen von vmstat können Ihnen aussagekräftigere Informationen darüber geben, wie "gesichert" Sie in Bezug auf Prozesse in der Ausführungswarteschlange sind. Die letzte Spalte ("wa") der vmstat-Ausgabe gibt an, ob und wie lange Sie auf den Abschluss der E / A warten. Die Größe der Ausführungswarteschlange und die E / A-Wartezeit hängen häufig zusammen. Schauen Sie sich auch sar (aus dem sysstat-Paket) an: Damit erhalten Sie einen detaillierten Überblick darüber, was sich über einen bestimmten Zeitraum abspielt. Die Messdaten, die es aufzeichnet, sind sehr gründlich.
quelle