1

Я тестирую свой UDP-прокси на компьютере с 8 логическими процессорами. На 14 тысячах клиентов UDP один из процессоров (CPU 4) начинает работать, и пропускная способность UDP (как показывает диспетчер задач) резко падает до нуля. Я использовал WPR для записи использования процессора во время пика, и WPA показывает, что процессор 4 обрабатывает вдвое больше фрагментов DPC/ISR (~ 11K), чем все другие процессоры (~ 5K каждый). Самый длинный фрагмент DPC работал в течение 232 миллисекунд, следующие 5 фрагментов DPC - в течение более 100 миллисекунд, а следующие 57 - от 1 до 90 миллисекунд.

Фрагмент определяется как «период времени, в течение которого DPC или ISR работал непрерывно». (см. https://msdn.microsoft.com/en-us/library/windows/hardware/jj679884.aspx).

Microsoft рекомендует, чтобы фрагменты DPC работали не более 100 микросекунд! (см. https://msdn.microsoft.com/en-us/library/windows/hardware/ff546551(v=vs.85).aspx)

bxvbda.sys - это модуль (Broadcom NetXtreme II GigE VBD), а um_bdrv_dpc - это функция для всех этих длительно работающих фрагментов DPC.

Итак, мой вопрос: правильно ли я интерпретирую данные WPA для DPC?

Все процессоры DPC/ISR

[РЕДАКТИРОВАТЬ] Добавление изображения использования DPC по стеку

0