Hohe CPU-Auslastung, aber Top-Prozesse rund um 0%.


11

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?


Ich sollte beachten, dass ich auf Ubuntu 10.04
Ben

Antworten:


4

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.


Es stellte sich heraus, dass es sich um einen Fehler in Ubuntu 10.04 und der von AWS verwendeten Hardware handelte
Ben

7

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 -mzeigt 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.


1
+1 für Swap. Sie können verwenden iotopoder vmstatversuchen, um festzustellen, ob es sich um E / A handelt.
Axel Knauf

1
- / + Puffer / Cache: 2933 14586
Ben

4

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.



2

Versuchen Sie es mit:

top -o cpu

Das -oFlag erzwingt, dass top die Prozesse nach CPU-Auslastung in absteigender Reihenfolge sortiert.


Als ich rannte, top -o cpubekam ich "top: unbekanntes Argument 'o'"
Ben

Ok, versuchen Sie, oben zu laufen und zu schlagen, owährend es läuft. Es sollte Sie nach einem Primärschlüssel fragen. Geben Sie ein cpuund drücken Sie die Eingabetaste.
Bandit

1
Selbst wenn nach CPU sortiert, steht oben auf der Liste nichts über 1% und es gibt zu einem bestimmten Zeitpunkt nur eine Handvoll (2-3). Der Rest ist 0%
Ben

Zumindest auf Centos 7.2 ist der richtige Befehl dazutop -o %CPU
siliconrockstar

2

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


0

Es sieht so aus, als ob die CPU-Auslastung von einem Thread stammt. topscheint 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?

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.