Высокое потребление памяти процессом Svchost.exe и службой wuauserv

Часть пользователей стала жаловаться на проблемы с производительностью их компьютеров с Windows 7. Проблема проявляется следующим образом: ежедневно, примерно в одно и то же время (у каждого пользователя время свое), компьютер начинает сильно тормозить. В диспетчере задач до 1,2 -2 Гб и 100% CPU одного ядра памяти потребляет процесс svchost.exe. В результате в течении 30-60 минут работать с компьютером невозможно, все ужасно тормозит и виснет.

Проблемы наблюдались на клиентах Windows 7 SP1 x86 и x64, получающих обновления с локального сервера SCCM, используемого для управления обновлениями клиентами. На стороне клиента запускаем диспетчер задач (Task Manager) и на вкладке Процессы сортируем запущенные процесс по использованию памяти. Видим, что в настоящий процесс svchost.exe использует 11% CPU и 1,2 Гб оперативной памяти. На самом деле процесс svchost.exe – это процесс контейнер, внутри которого работают другие программы и потоки системных служб. С помощью Task Manager не получится понять, какой именно поток (служба) вызывает высокую нагрузку на систему.

svchost.exe - грузит оперативную памятьБолее подробную информацию о процессе и его потоках можно, к примеру, получить с помощью утилиты Process Explorer Марка Руссиновича.

Запускаем утилиту procexp.exe и находим в списке процесс svchost.exe который потребляет слишком много памяти или % CPU.

procexp.exe процесс svchost

Открываем его свойства и переходим на вкладку Threads (Потоки). Здесь мы четко видим, что в рамках процесса svchost.exe больше всего ресурсов CPU и памяти потребляет поток службы wuauserv (Windows Update — Служба обновлений Windows). Служба wuauserv сканирует систему и сервер обновлений на предмет необходимости установки обновление. В результате каких-то проблем в коде служба начинает «течь», потребляет всю доступную ей память вплоть до 1,5-2 Гб, максимума который доступен процессу и начинается активно использовать файл подкачки. Система от этого резко начинает тормозить.

Что интересно, проблеме в большей мере подвержены клиенты с 2 Гб оперативной памяти. На ПК с 4 и более Гб памяти, служба wuauserv также «утекает», но не выбирается из 2 Гб, и проблема не так явно проявляется для пользователей.

Если остановить службу wuauserv из консоли services.msc, нагрузка на систему резко уменьшиться. А потребление памяти процессом svchost.exe падает до 80-100 Мб.

Важно. Это не означает, что нужно отключать службу wuauserv и держать ее в отключенном состоянии, т.к. система перестанет получать обновления безопасности и будет подвержена риску взлома.

wuauserv - высокое потребление памяти службой обновления WindowsВ первую очередь попробовали сбросить состояние агента Windows Update и обновили его версию по методике, описанной в статье: Восстановление исходных настроек агента Windows Update. Проблема решилась и в течении нескольких дней не повторялась, но через какое-то время все началось заново. Видимо размер локального кэша и базы обновлений достиг каких-то пределов, и служба wuauserv опять стала «течь».

Перебрали еще множество различных методик, но реально помогла только установка следующих патчей для агента обновлений Windows:

Совет. Патчи ставили не на все машины, а только на ПК, на которых пользователи жаловались на аналогичную проблему.

После установки обновлений, использование памяти процессом wuauserv снизилось до 200 Мб, а сам процесс сканирования стал занимать гораздо меньше времени.


Предыдущая статья Следующая статья

Комментариев: 13 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)