Высокие прерывания, иногда зависает

У нас есть 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 находятся в таком интенсивном использовании, возможно, что-то заставляет этот сервер устанавливать и прерывать сеансы чаще, чем другие, но это, похоже, не является вероятной причиной.

Какие именно симптомы? Это может быть хорошей идеей, чтобы проверить оборудование.

Другие вопросы по тегам