Назад | Перейти на главную страницу

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

У нас есть Win 2003 R2 TS (x86), у которого бывают «плохие дни». Я сам до сих пор не собирал данные об этом, но кажется, что большую часть времени он работает нормально, но в некоторые дни мы наблюдаем высокую загрузку процессора, скорее всего, из-за прерываний.

Используя процедуру, я могу увидеть всплески прерываний, которые не являются нормальными по сравнению с другими очень похожими TS. У меня нет оснований для "хорошего дня" по этому конкретному случаю, но проблема есть. Использование прерываний ЦП колеблется от 1 до 10%, в основном 3%.

Krview показывает это (кроме):

Module           Hits       %Total
intelppm         12195      48%
ntkrnlpa          8994      35%
win32k            1545       6%
hal                984       3%

Обычно я вижу intelppm на уровне> 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. Этот сервер работает на физическом блейд-сервере, как и около 14 других хорошо работающих TS.

И нет, это не режим PIO. :-)

Каждый системный вызов (функция ядра) вызывает прерывание. Я не уверен, что это могло бы объяснить низкую производительность. Кроме того, чтобы увидеть, какие программы их вызывают, лучше всего изучить конкретные процессы; по сути, то, что вы делаете, - это анализ прерываний в ядре (ntkrnlpa - это физическое расширение адреса ядра NT).

Учитывая, что SeMarkLogonSessionForTermination и NtBuildNumber так интенсивно используются, возможно, что-то заставляет этот сервер устанавливать и отключать сеансы чаще, чем другие, но это не кажется вероятной причиной.

Какие именно симптомы? Возможно, стоит проверить оборудование.