Высокие прерывания, иногда зависает
У нас есть Win 2003 R2 TS (x86), у которого есть "плохие дни". Я не собирал данные об этом сам до сих пор, но, похоже, большую часть времени он работает нормально, но в некоторые дни мы видим высокую загрузку ЦП, скорее всего из-за прерываний.
С помощью procxp я вижу шипы на прерывания, которые не являются нормальными по сравнению с другими очень похожими TS'. У меня нет исходных данных "хорошего дня" по этому конкретному, но проблема есть. Диапазон использования процессора прерывается от 1 до 10%, в основном на 3%.
Крвью показывает это (кроме):
Module Hits %Total
intelppm 12195 48%
ntkrnlpa 8994 35%
win32k 1545 6%
hal 984 3%
Обычно я вижу уровень интеллекта>98%, что похоже на нормальную ситуацию с прерываниями.
Увеличение на ntkrnlpa показывает это:
Module Hits msec %Total Events/Sec
NtBuildNumber 1075 14031 9 % 1915401
RtlCaptureContext 1062 14031 9 % 1892238
ZwYieldExecution 991 14031 8 % 1765733
NtFreeVirtualMemory 803 14031 6 % 1430760
SeMarkLogonSessionForTermination 638 14031 5 % 136768
KeFlushEntireTb 577 14031 4 % 1028080
KiDispatchInterrupt 535 14031 4 % 953246
ExAllocatePoolWithTag 494 14031 4 % 880193
KeAreAllApcsDisabled 453 14031 3 % 807141
wctomb 441 14031 3 % 785760
...
Вот где я попал в кирпичную стену... Я не знаю, почему эти функции вызывают прерывания, и я не знаю, какие программы их вызывают. Может ли кто-нибудь пройти через это?
Мы запускаем дюжину бухгалтерских приложений, некоторые на softgrid (app-v) и MS Office. Taskman не указывает ни на какие очевидные плохие процессы.
Единственный раз, когда я видел подобное поведение, было с устаревшими / несоответствующими vmtools на VMWare VM. Этот сервер работает на физическом блейде, так же как и около 14 других TS с хорошим поведением.
И нет, это не режим PIO.:-)
1 ответ
Каждый системный вызов (функция ядра) вызывает прерывание. Я не уверен, что это могло бы объяснить плохую производительность. Кроме того, чтобы увидеть, какие программы их вызывают, может быть лучше детализировать отдельные процессы; По сути, вы выполняете анализ прерываний в ядре (ntkrnlpa - это ядро NT с физическим расширением адреса).
Принимая во внимание, что SeMarkLogonSessionForTermination и NtBuildNumber находятся в таком интенсивном использовании, возможно, что-то заставляет этот сервер устанавливать и прерывать сеансы чаще, чем другие, но это, похоже, не является вероятной причиной.
Какие именно симптомы? Это может быть хорошей идеей, чтобы проверить оборудование.