Как устранить высокую загрузку CPU от Microsoft Common Language Runtime Native Compiler (ngen.exe)

Microsoft Common Language Runtime Native Compiler (ngen.exe) — это компонент экосистемы .NET, который выполняет предкомпиляцию управляемого кода в нативный машинный код для ускорения запуска приложений. Он не отвечает за пользовательский интерфейс; основная задача — улучшить производительность приложений, управлять сборкой мусора, обрабатывать исключения и управлять потоками.
Короткое определение: NGen — инструмент предкомпиляции .NET-приложений, который генерирует нативные образы для ускорения запуска.
Почему ngen.exe может использовать много CPU
- Плановая системная оптимизация или обслуживание (процесс запущен по планировщику).
- Неверные настройки приоритета процесса или службы.
- Несколько приложений одновременно запрашивают предкомпиляцию.
- Фоновые операции индексирования или взаимодействие с другими сервисами Windows.
- Повреждённые системные файлы или конфликтующие компоненты .NET.
- Вредоносное ПО, маскирующееся под ngen.exe (менее часто, но возможно).
Важно: высокий сезон загрузки может быть кратковременным — иногда NGen выполняет разовые задачи по оптимизации после обновлений или установки программ.
Когда нужно вмешиваться
- Процесс непрерывно использует высокий процент CPU более 10–15 минут без снижения.
- Система становится заметно медленнее (приостановки, лагает UI).
- Zаметно растёт температура ноутбука или вентиляторы работают постоянно.
Шаги подготовки — быстрые проверки перед углублённой диагностикой
- Перезагрузите компьютер.
- Подождите 15–30 минут: NGen мог запускаться после обновления или установки приложения.
- Просканируйте систему антивирусом (глубокое сканирование).
- Установите все обновления Windows и .NET Framework.
- Сохраните резервные копии важных данных перед изменениями в системе.
- Удалите недавно установленные ненужные приложения.
- По желанию соберите диагностический лог с помощью Farbar Recovery Scan Tool.
Основные методы устранения проблемы
1. Остановка процесса через Диспетчер задач
- Нажмите Ctrl + Shift + Esc, чтобы открыть Диспетчер задач.

- На вкладке Процессы найдите Microsoft Common Language Runtime Native Compiler или ngen.exe, выберите и нажмите Завершить задачу.
Примечание: это временное решение — процесс может возобновиться автоматически при следующем запуске обслуживания или при обращении приложения к предкомпиляции.
2. Перезапуск службы CLR
- Нажмите Windows + R, введите services.msc и нажмите ОК.

- Найдите службу с именем Microsoft Common Language Runtime (или похожее название), правой кнопкой мыши выберите Остановить.

- Дождитесь остановки службы и закройте окно Служб.
Совет: если служба сразу перезапускается и CPU остаётся высоким, переходите к сбросу кеша NGen.
3. Сброс кеша NGen и изменение приоритета
Откройте командную строку с правами администратора:
- Нажмите клавишу Windows, введите cmd, выберите Запуск от имени администратора.

- Сбросьте очередь NGen и выполните отложенные задания:
ngen executeQueuedItems- Чтобы изменить приоритет задач в очереди (пример синтаксиса):
ngen queue /priority priorityLevelГде priorityLevel — значение приоритета (например, low/normal/high в зависимости от версии и документации). Это уменьшит приоритет обработки и снизит пиковую нагрузку на CPU.
Важно: команды ngen требуют прав администратора и корректной среды .NET.
4. Чистая загрузка для выявления конфликтов
- Нажмите Windows + R, введите msconfig и нажмите ОК.

- На вкладке Службы отметьте Скрыть все службы Microsoft, затем нажмите Отключить все.

- Перейдите на вкладку Автозагрузка и откройте Диспетчер задач.

- В Диспетчере задач отключите все включённые задания автозагрузки.

- Вернитесь в Окно конфигурации системы, нажмите Применить и ОК, затем Перезагрузить.

Чистая загрузка помогает выявить сторонние приложения или сервисы, вызывающие конфликт с ngen.exe.
5. Проверка и восстановление системных файлов (SFC и DISM)
- Откройте командную строку от имени администратора.

- Выполните сканирование системных файлов:
sfc /scannow
- По завершении SFC выполните восстановление образа Windows:
Dism /Online /Cleanup-Image /RestoreHealth
- Перезагрузите компьютер.
Эти команды восстанавливают повреждённые или отсутствующие системные компоненты, которые могут вызывать ненужную работу NGen.
6. Удаление проблемного ключа реестра
Внимание: изменять реестр следует осторожно. Перед правкой обязательно сделайте экспорт (резервную копию).
- Нажмите Windows + R, введите regedit и нажмите ОК.

- В меню Файл выберите Экспорт и сохраните резервную копию .reg в доступном месте.

- Перейдите по ветке:
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework\v2.0.50727\NGenService\Roots- Правой кнопкой мыши удалите все записи в ветке Roots и закройте редактор реестра.

- Перезагрузите компьютер.
Комментарий: удаление ключа Roots заставляет систему пересоздать кеш NGen при следующем запуске обслуживания.
7. Восстановление или переустановка .NET Framework
- Скачайте Microsoft .NET Framework Repair Tool с официального сайта Microsoft.

- Запустите скачанный исполняемый файл и следуйте подсказкам мастера.

- Инструмент просканирует текущую установку .NET Framework и предложит исправления.

- Завершите работу мастера, нажмите Готово.

Если автоматическое восстановление не помогло, выполните полную переустановку:
- Нажмите Windows + R, введите appwiz.cpl и нажмите ОК.

- Найдите Microsoft .NET Framework в списке, выберите и удалите.

- Перейдите на официальный сайт .NET, скачайте актуальную версию и установите её.

- Запустите установщик и следуйте инструкциям; после установки перезагрузите компьютер.

Практические рекомендации и профилактика
- Позвольте ngen.exe работать во время простоя системы: планируйте обслуживание на периоды, когда вы не используете ПК.
- Регулярно обновляйте Windows и .NET Framework.
- Избегайте одновременной установки большого числа приложений, требующих предкомпиляции.
- Для серверов — настройте обслуживающие окна и мониторинг CPU/SLI, чтобы не допускать деградации сервиса.
Когда перечисленные способы не помогли
- Если после всех шагов процесс всё ещё использует высокий CPU, проверьте систему на наличие вредоносного ПО с помощью второго антивирусного сканера и специализированных утилит.
- Попробуйте восстановление системы на контрольную точку до появления проблемы или откат к предыдущей сборке Windows.
- На корпоративных машинах согласуйте действия с администратором — возможно, выполнена централизованная политикой задача обслуживания.
Дополнительные материалы для инженера: чеклист и проверка гипотез
Чеклист для быстрого устранения (шаги в порядке применения):
- Перезагрузка системы.
- Ожидание 15–30 минут (проверка кратковременной активности).
- Антивирусный скан.
- Остановка процесса в Диспетчере задач.
- Перезапуск службы CLR.
- Сброс NGen (ngen executeQueuedItems).
- Чистая загрузка для выявления конфликтов.
- SFC и DISM.
- Резервное копирование и удаление ключа в реестре.
- Восстановление/переустановка .NET Framework.
- Восстановление системы или откат Windows.
Критерии приёмки
- Нагрузка CPU от процесса ngen.exe стабилизировалась и не превышает нормального фона в течение 24 часов.
- Отсутствуют повторяющиеся ошибки в системном журнале, связанные с .NET.
- Приложения на .NET запускаются и работают корректно после исправлений.
Поток принятия решения (Mermaid)
flowchart TD
A[Высокая загрузка CPU от ngen.exe] --> B{Нагрузка кратковременная?}
B -- Да --> C[Дождаться окончания работы]
B -- Нет --> D{Подозрение на вредоносное ПО?}
D -- Да --> E[Выполнить глубокое сканирование антивирусом]
D -- Нет --> F[Остановить процесс в Диспетчере задач]
F --> G[Перезапустить службу CLR]
G --> H{CPU снизился?}
H -- Да --> I[Мониторинг 24 часа]
H -- Нет --> J[Сброс кеша NGen и изменение приоритета]
J --> K[Чистая загрузка и SFC/DISM]
K --> L{Проблема устранена?}
L -- Да --> I
L -- Нет --> M[Удалить ключ Roots и переустановить .NET]
M --> N{Проблема устранена?}
N -- Нет --> O[Откат системы / обратиться к администратору]Однострочный глоссарий
- NGen — инструмент предкомпиляции .NET для создания нативных образов.
- SFC — System File Checker, утилита проверки системных файлов.
- DISM — инструмент обслуживания образов Windows.
Сценарии, когда этот набор мер не сработает
- Повреждённый или изменённый сам исполняемый файл ngen.exe (требуется проверка целостности или замена из надёжного источника).
- Централизованные политики в корпоративной сети заставляют службу постоянно перезапускаться.
- Аппаратные проблемы (недостаточное охлаждение, нестабильность CPU) — нагрузка усугубляется, но причина не в программном обеспечении.
Короткое объявление для команды поддержки (100–200 слов)
Если на ваших рабочих станциях или серверах наблюдается высокая загрузка CPU из-за процесса Microsoft Common Language Runtime Native Compiler (ngen.exe), выполните стандартную диагностическую последовательность: перезагрузка, антивирусное сканирование, остановка процесса, перезапуск службы CLR, сброс кеша NGen, чистая загрузка, SFC/DISM, удаление проблемного ключа реестра и восстановление/переустановка .NET Framework. Если это не помогает — выполните откат к контрольной точке или обратитесь к системному администратору. Рекомендуется планировать операции NGen во внерабочее время и отслеживать изменения после обновлений.
Соображения безопасности и конфиденциальности
- Всегда загружайте .NET и инструменты восстановления с официального сайта Microsoft.
- Перед изменением реестра создайте экспорт (резервную копию).
- Для корпоративных устройств согласуйте действия с IT-отделом.
Если остались вопросы или нужна помощь с конкретным дампом, логами или выводом команд — оставьте подробное сообщение с результатами проверок, и мы поможем дальше.
Итог
Если процесс ngen.exe вызывает длительную высокую загрузку CPU, системный подход (остановка процесса, перезапуск службы, сброс кеша, чистая загрузка, SFC/DISM, удаление ключа реестра и переустановка .NET) решает подавляющее большинство проблем. Всегда начинайте с простых действий и переходите к более сложным только при необходимости.
Important: перед серьёзными изменениями системы создайте точку восстановления и резервные копии важных данных.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента