WPA zeigt das DPC-Fragment des NIC-Treibers für 232 Millisekunden

431
Marc Sherman

Ich teste meinen UDP-Proxy auf einem Computer mit 8 logischen CPUs. Bei rund 14.000 UDP-Clients beginnt eine der CPUs (CPU 4) mit dem Spitzenwert und der UDP-Durchsatz (wie vom Task-Manager gezeigt) auf Null. Ich habe WPR verwendet, um die CPU-Auslastung während der Spitze aufzuzeichnen, und WPA zeigt, dass CPU 4 doppelt so viele DPC / ISR-Fragmente (~ 11K) verarbeitet wie alle anderen CPUs (jeweils ~ 5K). Das längste DPC-Fragment lief 232 Millisekunden, die nächsten 5 DPC-Fragmente über 100 Millisekunden und die nächsten 57 zwischen 1 und 90 Millisekunden.

Ein Fragment ist definiert als "ein Zeitraum, in dem ein DPC oder ISR ohne Unterbrechung ausgeführt wurde". (Siehe https://msdn.microsoft.com/de-de/library/windows/hardware/jj679884.aspx )

Microsoft empfiehlt, dass DPC-Fragmente nicht länger als 100 Mikrosekunden ausgeführt werden! (Siehe https://msdn.microsoft.com/de-de/library/windows/hardware/ff546551 ( v = vs.85 ) .aspx ).

bxvbda.sys ist das Modul (Broadcom NetXtreme II GigE VBD) und um_bdrv_dpc ist die Funktion für all diese lang laufenden DPC-Fragmente.

Meine Frage ist also: Interpretiere ich die WPA-Daten für DPCs richtig?

Alle CPUs DPC / ISR

[EDIT] Hinzufügen eines Bildes der DPC-Verwendung nach Stapel

WPA zeigt das DPC-Fragment des NIC-Treibers für 232 Millisekunden

1
Ändern Sie im CPU-Stichprobengraph die Ansicht in "DPC / ISR-Nutzung nach Modul, STack" und erweitern Sie den Stack, um weitere Details anzuzeigen. magicandre1981 vor 9 Jahren 0
@ magicandre1981 Zum Post hinzugefügt. Sieht aus wie 1,973 Aufrufe von NETIO.SYS! WfpScavangeLeastRecentlyUsedList. Irgendwelche Ideen? Übrigens, wie macht man das Bild so anklickbar wie beim ersten Mal? Vielen Dank! Marc Sherman vor 9 Jahren 0
Normalerweise erhalten Sie PDBs für Treiber von Drittanbietern nur für Inbox-Treiber. Probieren Sie also einen neueren Netzwerktreiber aus und schauen Sie, was passiert. magicandre1981 vor 9 Jahren 0
Vielen Dank. Wir haben das gleiche Ergebnis erzielt. Ich habe einen Fehler im Stresstest-Code festgestellt, der dazu führt, dass der UDP-Proxy härter getroffen wird als konfiguriert. Marc Sherman vor 9 Jahren 0
@ magicandre1981 Was das Fehlen von PDB angeht, sagen Sie, dass um_bdrv_dpc möglicherweise nicht die eigentliche Funktion ist, die aufgerufen wird. Guten Anruf. Normalerweise stelle ich das in Windbg-Stacks fest, bei denen der Versatz vom Symbol sehr groß ist. Schade, dass WPA den Offset nicht anzeigt. Danke noch einmal! Marc Sherman vor 9 Jahren 0
Wenn Sie die Funktion sehen, bedeutet dies, dass WPA Symbole laden konnte. Wenn kein Symbol gefunden wird, wird ** Modul angezeigt.? ** magicandre1981 vor 9 Jahren 0

0 Antworten auf die Frage