udp - WPA shows NIC driver DPC fragment running for 232 milliseconds -
i'm stress testing udp proxy on machine 8 logical cpus. @ around 14 thousand udp clients, 1 of cpus (cpu 4) starts spiking , udp throughput (as shown task manager) plummets zero. used wpr record cpu usage during spike , wpa shows cpu 4 handling twice many dpc/isr fragments (~11k) other cpus (~5k each). longest dpc fragment ran 232 milliseconds, next 5 dpc fragments ran on 100 milliseconds, , next 57 ran between 1 , 90 milliseconds.
a fragment defined "a period of time during dpc or isr ran uninterrupted." (see https://msdn.microsoft.com/en-us/library/windows/hardware/jj679884.aspx)
microsoft recommends dpc fragments run no longer 100 microseconds! (see https://msdn.microsoft.com/en-us/library/windows/hardware/ff546551(v=vs.85).aspx)
bxvbda.sys module (broadcom netxtreme ii gige vbd) , um_bdrv_dpc function of these long running dpc fragments.
so question is: interpreting wpa data dpcs correctly?
i've been analyzing etl traces sometime , yes appear looking @ correctly. don't mention version of server using, udp traffic on versions of windows server need hotfix. might worth investigating.
the below post pretty awesome post on analyzing dpc issues, might want take @ well. walk through trace , on 100ms. in windows 8 changed lot though, os (again) :)
http://blogs.technet.com/b/craigf/archive/2014/02/03/a-backup-server-flooded-by-dpcs.aspx
in windows 8 can see changed how dpcs calculated, reference below well.
key points:
"why dpc latency bad in windows 8? used program dpc latency checker measure. windows 7 shows 90u while sitting on desktop windows 8 cp never shows lower 1000u."
"on windows 8, reports dpc latency of 1000us (1ms) @ lowest. never reaches below 1000us, ever. regularly spikes in 2-3ms (2,000-3,000us) range, , spikes 20-30ms range during processing."