Высокое потребление памяти процессом Svchost.exe и службой wuauserv в Windows 10 и 7
Служба wuauserv – это стандартная служба обновления Windows, которая используется для сканирования компьютера, поиска, закачки и установки новых обновлений с узлов Windows Update или локальных WSUS серверов. В некоторых случаях служба wuauserv может работать некорректно, вызывая сильную нагрузку на процессор компьютера или использую большую часть оперативной памяти. Т.к служба wuauserv работает внутри процесса-контейнера svchost.exe, с точки зрения пользователей это выглядит, как будто процесс svchost сильно грузит процессор и оперативную память на вашем устройстве Windows. В этой статье мы рассмотрим как решить проблему высокого потребления памяти и ресурсов ЦП процессом wuauserv в Windows 7 и Windows 10.
Служба Wuauserv в Windows 7 грузит процессор и память на 50%
Часть пользователей стала жаловаться на проблемы с производительностью их компьютеров с Windows 7. Проблема проявляется следующим образом: ежедневно, примерно в одно и то же время (у каждого пользователя время свое), компьютер начинает сильно тормозить. В диспетчере задач до 1,2 -2 Гб и 100% CPU одного ядра памяти потребляет процесс svchost.exe. В результате в течении 30-60 минут работать с компьютером невозможно, все ужасно тормозит и виснет.
Проблемы наблюдались на клиентах Windows 7 SP1 x86 и x64, получающих обновления с локального сервера SCCM, используемого для управления обновлениями Microsoft на клиентах. На стороне клиента запускаем диспетчер задач (Task Manager) и на вкладке Процессы сортируем запущенные процесс по использованию памяти. Видим, что в настоящий процесс svchost.exe использует 11% CPU и 1,2 Гб оперативной памяти. На самом деле процесс svchost.exe – это процесс контейнер, внутри которого работают другие программы и потоки системных служб. С помощью Task Manager не получится понять, какой именно поток (служба) вызывает высокую нагрузку на систему.
Более подробную информацию о процессе и его потоках можно, к примеру, получить с помощью утилиты Process Explorer Марка Руссиновича.
Запускаем утилиту procexp.exe и находим в списке процесс svchost.exe который потребляет слишком много памяти или % CPU.
Открываем его свойства и переходим на вкладку Threads (Потоки). Здесь мы четко видим, что в рамках процесса svchost.exe больше всего ресурсов CPU и памяти потребляет поток службы wuauserv (Windows Update — Служба обновлений Windows). Служба wuauserv сканирует систему и сервер обновлений на предмет необходимости установки обновлений. В результате каких-то проблем в коде служба начинает «течь», потребляет всю доступную ей память вплоть до 1,5-2 Гб (максимума памяти который доступен процессу) и начинается активно использовать файл подкачки. Система от этого резко начинает тормозить.
Что интересно, проблеме в большей мере подвержены клиенты с 2 Гб оперативной памяти. На ПК с 4 и более Гб памяти, служба wuauserv также «утекает», но не выбирается из 2 Гб, и проблема не так явно проявляется для пользователей.
Если остановить службу wuauserv из консоли services.msc, нагрузка на систему резко уменьшиться. А потребление памяти процессом svchost.exe падает до 80-100 Мб.
Важно. Это не означает, что нужно отключать службу wuauserv и держать ее в отключенном состоянии, т.к. система перестанет получать обновления безопасности и будет подвержена риску взлома.
В первую очередь попробовали сбросить состояние агента Windows Update и обновили его версию по методике, описанной в статье: Восстановление исходных настроек агента Windows Update. Проблема решилась и в течении нескольких дней не повторялась, но через какое-то время все началось заново. Видимо размер локального кэша и базы обновлений достиг каких-то пределов, и служба wuauserv опять стала «течь».
Перебрали еще множество различных методик, но реально помогла только установка следующих патчей для агента обновлений Windows 7:
Совет. Патчи ставили не на все компьютеры с Windows 7, а только на ПК, на которых пользователи жаловались на аналогичную проблему.
После установки обновлений, использование памяти процессом wuauserv снизилось до 200 Мб, а сам процесс сканирования стал занимать гораздо меньше времени.
Wuauserv грузит процессор и память в Windows 10
Проблема, когда служба центра обновления Windows сильно грузит процессор и использует слишком много памяти встречается и в различных версиях Windows 10.
Откройте диспетчер задач и найдите процесс svchost.exe который потребляет слишком много памяти или ресурсов CPU. Щелкните по нему ПКМ и выберите пункт “Перейти к службам”.
Убедитесь, что в рамках данного процесса svchost.exe работает служба wuauserv (Центр обновления Windows).
Т.к. диспетчер задач не позволяет определить какая именно из системных служб, работающих внутри одного процесса svchost сильно грузит компьютер, нужно воспользоваться Process Explorer (как описано выше). Убедитесь, что высокая загрузка CPU/памяти вызвана службой wuauserv (в нашем примере это библиотека C:WINDOWSsystem32wuaueng.dll).
В отличии от рассмотренного выше кейса с утечкой памяти в процессе службы обновлений в Windows 7, для Windows 10 отсутствует универсальный патч, который позволяет исправить проблему. Поэтому ниже мы перечислим основные шаги, которые следует выполнить для уменьшения использования памяти и процессором службой обновления Windows.
Дождитесь окончания установки обновлений
Если служба обновлений Windows в данный момент времени выполняет сканирование вашего компьютера или установку обновлений, то высокая загрузка компьютера не должна вас удивлять. Попробуйте подождать (1-2 часа в зависимости от производительности компьютера) и дождаться пока wuauserv закончит загрузку и установку обновлений.
Запустите средство устранения неполадок центра обновлений Windows 10
Попробуйте выполнить диагностику служба обновления Windows 10с помощью встроенного средства устранения неполадок (Window Update Troubleshooter). Перейдите в меню Параметры -> Обновление и безопасность -> Устранение неполадок. Выберите пункт “Центр обновления Windows (Устраните проблемы, мешающие обновлению Windows) -> Запустить средство устранения неполадок”.
Утилита проверит состояние службы и попробует исправить найденные проблемы.
Очистите папки SoftwareDistribution и catroot2
Попробуйте выполнить очистку папок SoftwareDistribution и catroot2.
- В каталоге C:WindowsSoftwareDistribution хранятся временные файлы службы Windows Update и файлы скачанных обновлений.
- В каталоге %windir%System32catroot2 хранятся сигнатуры пакетов обновлений.
Попробуем очистить их с помощью следующего скрипта (сохраните код в текстовом файле с расширением *.bat и запустите с правами администратора):
attrib -h -r -s %windir%system32catroot2
attrib -h -r -s %windir%system32catroot2*.*
net stop wuauserv
net stop CryptSvc
net stop BITS
ren %windir%system32catroot2 catroot2.old
ren %windir%SoftwareDistribution SoftwareDistribution.old
ren "%ALLUSERSPROFILE%application dataMicrosoftNetworkdownloader" downloader.old
net Start BITS
net start CryptSvc
net start wuauserv
Проверьте целостность системных файлов Windows
Выполните проверку системных файлов вашего образа Windows с помощью команд:
sfc /scannow
и
DISM /Online /Cleanup-Image /RestoreHealth
Проверьте компьютер на вирусы
Проверьте вашу Windows на вирусы в офлайн режиме с помощью загрузочного образа (Kaspersky Rescue Disk или Dr.Web LiveDisk).
Обновите вашу Windows 10
Обновите вашу версию Windows 10, установив актуальный на данный момент времени билд. Вручную скачайте и установите с сайта Microsoft Update Catalog (https://www.catalog.update.microsoft.com/Home.aspx) последний кумулятивный апдейт для вашей версии Windows (Microsoft ежемесячно исправляет баги и различные ошибки Windows и добавляет исправления в кумулятивный пакет обнволений).
Отключите оптимизацию доставки
Перейдите в меню Параметры -> Обновление и безопасность -> Центр обновления Windows -> Дополнительные параметры -> Оптимизация доставки. Выключите пункт «Разрешить загрузки с других компьютеров» и перезагрузите компьютер.
Удалите последние обновления
Если проблема с высокой загрузкой процессора и памятью службой wuauserv возникла сразу после установки новых обновлений Windows, попробуйте по очереди удалить последние обновления (Панель управления -> Программы и компоненты -> Просмотр установленных обновлений). Отсортируйте обновления по дате установки, щелкните ПКМ по обновлению и выберите Удалить.
Отключите службу wuauserv
Я никогда не рекомендую отключать службу обновлений Windows, т.к. вы перестанете получать обновления безопасности и подвергаете ваш компьютер риску взлома или заражения. Отключение службы обновлений можно использовать как временный шаг, когда другие способы восстановить нормальную работу системы не помогают.
Откройте консоль управления службами (services.msc), найдите службу «Центр обновления Windows», остановите ее и измените тип запуска на Отключена. Сохраните изменения и перезагрузите компьютер.
Во второй вторник следующего месяца обязательно вручную скачайте и установите новые кумулятивные обновления для вашей версии Windows. Включите службу wuauserv. Возможно ваша проблема будет исправлена в новом обновлении.
Windows 7
Высокое потребление памяти процессом Svchost.exe и службой wuauserv в Windows 10 и 7