NET Runtime Optimization Service грузит процессор: причины и что делать?

Эта проблема проявляется случайным образом, но также может возникнуть после установки обновления .NET Framework. Исполняемый файл mscorsvw.exe может отображаться в Диспетчере задач под этим именем или как .NET Runtime Optimization Service. Он запускается не так часто, и эта служба, предназначенная для оптимизации NET Framework, гарантирует, что приложения зависящие от нее работают быстрее.

Иногда эта оптимизация занимает слишком много времени, и при каждом запуске потребляет высокий процент ресурсов процессора. Часто высокая нагрузка ЦП со стороны этого процесса наблюдается в течение нескольких дней. Есть несколько решений решить эту проблему.

Почему .NET Runtime Optimization Service сильно грузит процессор?

Официальный ответ заключается в том, что процесс должен перекомпилировать свои библиотеки и только во время простоя компьютера. Майкрософт также заявляет, что процесс занимает не более нескольких минут. Но это не так. В некоторых случаях пользователи сообщают, что NET Runtime Optimization Service может сильно грузить процессор даже больше недели. Вот некоторые причины:

  1. Если процесс работает долгое время, то можно попытаться ускорить его, выполнив определенные команды.
  2. На компьютере присутствует вредоносное ПО, которое либо замаскировалось под эту службу, либо ее исполняющий файл был заражен. Для решения нужно просканировать компьютер на вирусы и вредоносный код.
  3. Служба повреждена или сбой при загрузке, попробуйте перезапустить ее.

Решение 1: Оптимизация процесса

В общем, не рекомендуется завершать этот процесс сразу, так как он нужен для актуализации библиотек и способа запуска приложений и игр. Есть различные способы его ускорить — от запуска простых команд до выполнения более сложных скриптов. Они позволят процессу использовать больше ядер процессора, тем самым быстрее завершить работу.

Правым кликом мыши на кнопке Пуск вызовите контекстное меню и найдите пункт «Командная строка». Или наберите это название в строке поиска, кликните правой кнопкой мыши на первый результат и выберите опцию «Запуск от имени администратора».

Скопируйте по очереди указанные команды и кликните на Enter после вставки каждой. Среди первых двух команд выполните одну из них в соответствии с операционной системой (первая для 32-разрядной версии ОС, вторая для 64-разрадной):

  1. cd c:\Windows\Microsoft.NET\Framework\v4.0.30319
    cd c:\Windows\Microsoft.NET\Framework64\v4.0.30319
  2. ngen.exe executequeueditems

Проверьте, снизилась ли нагрузка на процессор, создаваемая службой NET Runtime Optimization Service.

Также можно воспользоваться официальным скриптом Майкрософта, который делает то же самое.

  1. Наберите в поисковике «drainngenqueue wsf» и перейдите на сайт GitHub, чтобы открыть страницу скрипта.
  2. Кликните правой кнопкой мыши в начале кода на кнопку «Raw» и выберите «Сохранить ссылку как …», убедившись, что расширение файла Windows Script File (*.wsf).
  3. Найдите файл в том месте на диске, в котором сохранили и запустите его. Если столкнулись с выбором программы для ее загрузки, выберите Windows Script Host.

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

Решение 2: Проверка на вирусы

Вирусное заражение является одной из ведущих причин высокой нагрузки службой NET Runtime Optimization. Вредоносные программы в попытке завладеть ресурсами процессора, могут замаскировать свои процессы под эту службу.

Для этого просканируйте компьютер антивирусной утилитой Malwarebytes, которая показывает лучшие результаты, поскольку обладает обширной базой данных.

Malwarebytes Anti-Malware – эффективный инструмент для защиты от вредоносных программ с бесплатной версией. Возможно, вам не потребуется полный пакет после решения этой проблемы, поэтому можно воспользоваться пробной версией.

После загрузки выберите место для установки Malwarebytes и следуйте инструкциям на экране до завершения инсталляции.

Откройте антивирус и выберите опцию сканирования на главном экране приложения.

Инструмент, вероятно, запустит процедуру обновления своей вирусной базы данных, а затем продолжит сканирование. Если обнаружено вредоносное ПО, подтвердите его удаление или карантин.

Перезапустите компьютер после завершения сканирования и проверьте, насколько .NET Runtime Optimization Service теперь грузит процессор.

Также нужно воспользоваться и другими программами защиты ПК. Поскольку один сканер не сможет распознать и удалить все типы вредоносных программ.

Решение 3: Перезапуск службы

Для решения высокой нагрузки ЦП попробуйте перезапустить службу. После NET Runtime Optimization Service должен завершиться быстрее, если высокое потребление ресурсов процессора связано со сбоем при его запуске.

  1. Выведите на экран диалоговое окно «Выполнить» комбинацией клавиш Windows + R. Наберите команду devmgmt.msc и подтвердите ее выполнение на Enter.
  2. Найдите в списке Microsoft.NET Framework NGEN v4.0.30319_X(86 или 64, в зависимости от разрядности операционной системы), кликните правой кнопкой мыши и выберите Свойства в контекстном меню.
  3. Если служба запущена остановите ее и запустите снова.
  4. Перед выполнением других действий убедитесь, что параметр в меню «Тип запуска» имеет значение Автоматически. Теперь проверьте, снизилась ли нагрузка на процессор.

При нажатии кнопки «Запустить» может возникнуть сообщение об ошибке: «Ошибка 1079: учетная запись, указанная для этой службы отличается от учетной записи, указанной для иных в том же процессе».

Перейдите на вкладку «Вход в систему» и нажмите кнопку Обзор. В поле «Введите имя выбираемых объектов» впишите имя учетной записи, нажмите «Проверить имена» и дождитесь, пока имя станет доступным.

Нажмите на ОК и введите пароль, если появится соответствующий запрос.

Ссылка на основную публикацию