Wie kann ich die Festplatten-E / A-Wartezeit für eine aktive CPU messen?

477
Adama

Es gibt bereits viele Tools zum Messen des Prozentsatzes der CPU-Wartezeit während E / A-Vorgängen, wie z dstat. Trotzdem suche ich nach einer Möglichkeit, die Wartezeit der aktiven Kerne zu messen .

Insbesondere haben meine Server eine Intel i7-CPU . Diese CPUs sind nicht immer aktiv. Wenn Sie also die CPU-Auslastung messen möchten, bieten die PCM-Tools zwei verschiedene Metriken: entweder über einen nominalen CPU-Zyklus oder einen aktiven CPU-Zyklus.

Gibt es eine ähnliche Methode zum Messen der E / A-Wartezeit über die aktiven CPU-Zyklen ? Ich habe das starke Gefühl, dass meine aktive CPU einen E / A-Engpass aufweist, aber die Gesamtwartezeit ist gering (etwa 3% bis 8%). Ich habe 8 Kerne und 2 Threads / Kern, daher kann ich nicht quantifizieren, ob dieser Prozentsatz "viel" ist oder nicht.

0
Sprechen wir über Desktop oder Server? In jedem Fall wird ein Thread inaktiv (Kontextumschaltung), wenn eine DMA-Anforderung nach Daten vom Sekundärspeicher gestellt wird. Daher ist die Wartezeit niemals Teil eines aktiven Prozesses. Wenn das Betriebssystem andere Threads ausführen soll, werden sie ausgeführt, während die Anforderung abgeschlossen ist. Wenn dies nicht der Fall ist, ist der Kern inaktiv, während Sie auf das IRQ warten, um "DMA complete" zu sagen. Interessieren Sie sich speziell für globale Aggregatwerte, die eine ungefähre Last darstellen, oder stellen Sie eine spezifischere Frage zu einem bestimmten Programm oder Thread? Frank Thomas vor 6 Jahren 0
@FrankThomas Danke für Ihr Feedback. Wir sprechen hier insbesondere von einem Server. Ich frage jedoch nach einem bestimmten Programm (einem Container, der eine hadoop-Anwendung ausführt). Ich habe 3 Container, die dieselbe Anwendung ausführen, und ich möchte prüfen, ob sie einen gleichzeitigen E / A-Engpass haben. Adama vor 6 Jahren 0

0 Antworten auf die Frage