WPA показывает фрагмент DPC драйвера NIC, работающий в течение 232 миллисекунд

331
Marc Sherman

Я тестирую свой 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?

All CPUs DPC/ISR

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

enter image description here

1
на графике выборки ЦП измените представление на «Использование DPC / ISR модулем, STack» и разверните, разверните стек, чтобы увидеть больше деталей. magicandre1981 9 лет назад 0
@ magicandre1981 Добавил это в пост. Похоже, 1 973 вызовов NETIO.SYS! WfpScavangeLeastRecentlyUsedList. Есть идеи? Кстати, как вы делаете изображение кликабельным, как вы сделали с первым? Спасибо! Marc Sherman 9 лет назад 0
обычно вы не получаете PDB для драйверов сторонних производителей только для драйверов входящих сообщений. Так что попробуйте новый сетевой драйвер и посмотрите, что получится. magicandre1981 9 лет назад 0
Благодарю. Мы сделали, но получили тот же результат. Я заметил ошибку в коде стресс-теста, из-за которой он попал в UDP-прокси сильнее, чем было настроено. Marc Sherman 9 лет назад 0
@ magicandre1981 Что касается отсутствия PDB, вы говорите, что um_bdrv_dpc не может быть реальной вызываемой функцией. Хороший звонок. Я обычно замечаю это в стеках Windbg, где смещение от символа огромно. Жаль, что WPA не показывает смещение. Еще раз спасибо! Marc Sherman 9 лет назад 0
если вы видите функцию, это означает, что WPA удалось загрузить символы. Если символ не найден, он показывает ** модуль.? ** magicandre1981 9 лет назад 0

0 ответов на вопрос