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

Windows: высокая частота прерываний и переключений контекста

У меня очень высокая частота прерываний / сек и CSwitch / сек на моем компьютере с Windows10. Я бы посмотрел, чтобы понять, нормальная это ситуация или нет. Ставки мне показались завышенными. Пожалуйста посоветуй.

Вот Procexp, отсортированный по CSwitchDelta:

Вот отчет от perfmon:

Вы можете видеть, что количество переключений CS в секунду составляет около 50-60 тысяч. Количество прерываний в секунду составляет 30-50 тысяч. Время процессора (как для пользователя, так и для ядра) не очень велико. Поэтому я не могу сказать, что это проблема производительности с точки зрения пользователя - я не вижу медлительности в пользовательском интерфейсе. Но я видел несколько статей, в которых говорится, что CSwitches / sec больше 1000 - это высокий уровень. У меня 60000 :) Пример - https://technet.microsoft.com/en-us/library/cc938613.aspx (он действительно староват).

Я понимаю, что ставки очень зависят от текущей работы, которую выполняет машина. У меня много запущенных процессов - это моя машина разработчика (VS, VSCode, Firefox, Chrome, Outlook, Sublime, Slack, Adobe Reader, Onenote, Docker (контейнеры не запущены), PerfMon, SQLServer, Postgres). Но я бы понял, если бы CSwitches были созданы этими процессами, но кажется, что они вызваны прерываниями. Нет никакой работы с высокой загрузкой процессора (вы можете увидеть это как в Process Times), система просто простаивает.

Я ищу какие-либо рекомендации, чтобы обосновать, нормальная это ситуация или что-то не так с моей машиной (оборудованием?). Как понять, высока ли частота прерываний в секунду? Заранее спасибо.

p.s. Процессор: Intel Core i7-870 (Intel Q57)

ОБНОВЛЕНО: я отключил HyperThreading в BIOS. Нашел этот совет здесь - Переключение высокого контекста в поле SQL Server. Сейчас скорость CSwitches - в среднем 20К, прерываний - в среднем 10К.