Wohin geht das Warten im Netzwerk?


9

Wenn top hohe Lasten anzeigt und Sie nicht wissen, ob der Prozess, der es verursacht, Prozessorzeit benötigt oder Netzwerk-E / A (nicht lokale E / A) ausführt, wie können Sie das herausfinden?

Auf unserem Server sehe ich hohe Werte für die Last, aber in Kombination mit 60% -70% Leerlauf und etwa 25% Benutzer. Ich würde gerne wissen, wie man solche Werte interpretiert, aber im Internet habe ich fast immer gelesen, dass Sie iostat verwenden können, um zu sehen, ob der Prozess Ihre Festplatten zerstört. Aber ich weiß schon sicher, dass das nicht der Fall ist. Der betreffende Prozess hat auch keine Probleme, seine Arbeit zu erledigen, aber die Last ist immer noch hoch.

Gibt es also eine Möglichkeit herauszufinden, welcher Teil durch das Warten im Netzwerk und welcher Teil durch die reale Prozessorzeit verursacht wird? Und was bedeutet "Leerlauf" oben?

Zur Verdeutlichung: Mit load meine ich die 3 Zahlen, die die durchschnittlichen Prozesse in der Warteschlange pro Kern angeben. Es gibt 8 Kerne auf dieser Maschine und die Anzahl steigt auf 25, was einer Last von 2,5 pro Kern entspricht.


Wie nennt man "load": CPU-Auslastung oder die 3 "load durchschnitt" -Werte (in der uptimeAusgabe)?
Spuk

1
Frage macht keinen Sinn ... Warten auf Netzwerk-E / A verbraucht keine CPU-Zeit.
Psusi

2
Ich liebe das Dienstprogramm htopzum Einblicken in Prozesse. Insbesondere können Sie damit einen Prozess auswählen und dann mit dem lBefehl alle geöffneten Dateien anzeigen, indem Sie Geräte und dergleichen lsofeinschließen IPv4und IPv6streamen. Wenn Sie straceauf Ihrer Box installiert haben , können Sie auch Systemaufrufe und Signal-Debugging durchführen. Nicht gerade eine Antwort, aber ein anderes Werkzeug, das ich für das in Betracht ziehen würde, was Sie untersuchen möchten.
111 ---

Ich meine die 3 Zahlen. Soweit ich weiß, werden sie "Laden" genannt, oder irre ich mich hier? Sie stellen die Anzahl der Prozesse in der Warteschlange dar, die ausgeführt werden können. Umfasst dies jedoch Prozesse, bei denen das Netzwerk wartet, oder schließt dies Prozesse aus?
Jan

Und was definieren Sie als "hoch"? Der Lastdurchschnitt ist für Kerne nicht skaliert. Beispiel: Ein System mit einem Lastdurchschnitt von 1 und 4 Kernen ist 1/4 so belastet wie ein System mit einem Lastdurchschnitt von 1 und nur 1 Kern. Der Lastdurchschnitt ist eine sehr grobe Zahl.
Bahamat

Antworten:


3

Wenn top hohe Lasten anzeigt und Sie nicht wissen, ob der Prozess, der es verursacht, Prozessorzeit benötigt oder Netzwerk-E / A (nicht lokale E / A) ausführt, wie können Sie das herausfinden?

Netzwerk-E / A werden in der Linux-iowait-Metrik nicht berücksichtigt, es sei denn, sie sind Teil einer NFS-Transaktion. In diesem Fall wird sie als Festplatten-E / A betrachtet.

Gibt es also eine Möglichkeit herauszufinden, welcher Teil durch das Warten im Netzwerk und welcher Teil durch die reale Prozessorzeit verursacht wird?

Außerhalb einer hypothetischen NFS-Wartezeit wird kein Teil der durchschnittlichen Last durch das Warten im Netzwerk beansprucht.

Und was bedeutet "Leerlauf" oben?

Dies bedeutet, wie viel Prozent der Zeit die CPU nicht in einem anderen der aufgelisteten Zustände ist (Benutzer, System, nett, iowait, Hardware-Interrupts, Software-Interrupts, gestohlen). Dies schließt Netzwerkwartezeiten ein. Im Leerlauf macht die CPU im Wesentlichen nichts. Beachten Sie, dass iowait auch im Leerlauf ist, da eine CPU auch nichts tut.


Danke für deine Antwort. In meiner Situation, in der ich einen hohen Leerlaufwert (60% - 70%) und einen niedrigeren Benutzerstatus (ca. 25%) sowie einen niedrigen iowait-Wert sehe, kann dies bedeuten, dass der Server auf Netzwerkressourcen wartet, wenn ich Sie richtig verstehe.
Jan

1
Nicht unbedingt auf Netzwerkressourcen warten. Es kann einfach sein, dass die CPU schnell genug ist, um alles zu erledigen, was zu tun ist. Der hohe Lastdurchschnitt wird möglicherweise durch eine sehr hohe Anzahl von Threads verursacht, die gleichzeitig um eine CPU konkurrieren, jedoch während sehr kurzer unechter Zeiträume.
Jlliagre
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.