Wir haben einen Server mit ungewöhnlich hoher Last und CPU-Auslastung, aber wir können nicht herausfinden, warum. Wenn wir oben laufen, scheinen alle Prozesse eine sehr niedrige CPU zu haben.
http://cl.ly/2d1g0K3q261r0R0K3e35
Gibt es einen besseren Weg, um herauszufinden, was dies verursacht?
Antworten:
Ich denke, dieser Fehler ist Ihr Fall. Nach dem, was ich aus der Ausgabe sehe, haben Sie genügend Speicher (beachten Sie die zwischengespeicherten 14 GB oder so), keine E / A-Probleme, aber Sie haben xenbezogene Prozesse ausgeführt. Das lässt mich denken, dass es ein Fehler ist.
quelle
Die Last ist ein Maß für die Arbeitslast eines Systems auf der Basis von 1, 5 und 15 Minuten.
Das häufigste Missverständnis ist, dass Load Average ausschließlich mit der CPU-Auslastung eines Systems verbunden ist.
Das Laden beinhaltet jedoch zusätzliche Messungen wie die CPU, die auf E / A wartet, was meiner Meinung nach Ihr Problem ist.
Aufgrund des Bildes, das ich vermute, ist Ihnen der Speicher ausgegangen und Sie haben begonnen, Daten auf die Festplatte auszutauschen.
Ein einfaches
free -m
zeigt Ihnen, wie viel RAM und Swap verwendet werden.Die interessante Spalte ist außerdem die freie Spalte
-/+ buffers/cache
.Wenn es nahe Null ist, haben Sie keinen RAM mehr und sollten entsprechend handeln.
quelle
iotop
odervmstat
versuchen, um festzustellen, ob es sich um E / A handelt.Es wurde festgestellt, dass der Lastdurchschnitt ziemlich hoch ist (68, wow). Ist es möglich, dass es viele Prozesse gibt, die ein wenig CPU beanspruchen und somit die gesamte CPU-Zeit in Anspruch nehmen? Vielleicht beginnen und enden diese Prozesse nur sehr schnell, sodass top die Existenz von ihnen nicht erfassen kann. Sie können versuchen zu sehen, ob sie das sehen können oder nicht.
quelle
Versuchen
IO war es die meiste Zeit für mich.
quelle
Versuchen Sie es mit:
Das
-o
Flag erzwingt, dass top die Prozesse nach CPU-Auslastung in absteigender Reihenfolge sortiert.quelle
top -o cpu
bekam ich "top: unbekanntes Argument 'o'"o
während es läuft. Es sollte Sie nach einem Primärschlüssel fragen. Geben Sie eincpu
und drücken Sie die Eingabetaste.top -o %CPU
Es können gesperrte Dateien auf nfs oder andere Dinge sein, die eine Datei sperren, auf die ein anderer Prozess Zugriff benötigt
Möglicherweise wird auch ein konfigurierter Dienst mit zu vielen aktiven Threads übersehen
quelle
Es sieht so aus, als ob die CPU-Auslastung von einem Thread stammt.
top
scheint dies nicht zu berücksichtigen. Ich habe dies kürzlich auf einem MySQL-Server gesehen. Es werden INSERT-Anweisungen ausgeführt, aber ich konnte die neuen Zeilen mit SELECT nicht abrufen, da ein Thread von mysqld den Tabellenindex aktualisiert hat. oben zeigt 100% Benutzerlast auf einem Kern, aber jeder Prozess einschließlich mysqld war eine 0,0% CPU. Stunden später lieferte dasselbe SELECT die erwartete Ergebnismenge.Siehe auch
Erhalten einer CPU-Statistik pro Thread
'htop' Prozess und Threads CPU-Nutzung?
quelle