svchost.exe -k netsvcs, занимающий>1 ГБ памяти

Я заметил, что мой рабочий сервер "svchost.exe -k netsvcs" постоянно занимает>1 ГБ оперативной памяти, что, на мой взгляд, немного избыточно.

Вот что TaskList / SVC даст мне для этого процесса:

                               Appinfo, CertPropSvc, gpsvc, IKEEXT,
                               iphlpsvc, LanmanServer, ProfSvc, Schedule,
                               SENS, SessionEnv, ShellHWDetection,
                               Winmgmt, wuauserv

Мне было интересно, что может быть в списке процессов, которые ответственны за эту утечку памяти и как ее исправить. У кого-нибудь было такое же поведение в прошлом?

Сервер работает под управлением Windows Server 2008 R2 (сборка 7601: пакет обновления 1), и его основная функция - запуск собственных рабочих процессоров приложений.

3 ответа

Вопрос в том, это утечка? Вы говорите, что использование памяти "устойчиво".

Утечка = использование памяти увеличивается со временем, а не уменьшается, поэтому приходится периодически перезагружать сервер.

Если такты остаются на ~1 ГБ в течение длительного времени (скажем, две недели), то ситуация совершенно нормальная. Современное программное обеспечение предназначено для использования свободной памяти при необходимости, и я знаю несколько программ, которые просто захватят все, что только есть, чтобы сэкономить время на выделение памяти.

Если это не мешает работе системы, не трогайте ее.

В качестве следующего шага, если вы хотите продолжить исследование, я бы установил Process Explorer (procxp.exe), который вы можете найти на сайте Microsoft. Это даст вам информацию о том, какие сервисы используют этот процесс (см. Скриншот из procxp), затем вы можете остановить / запустить сервисы и посмотреть, связан ли конкретный сервис с освобождением / получением большого выделения памяти. Он также скажет вам, выделена ли рабочая память или частная (= в основном куча) выделенная память. Если он привязан к определенной услуге, у вас будет более четкий путь для дальнейших исследований.

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

Скриншот: http://i.imgur.com/20Ij6Mi.png

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

Например, Firefox некоторое время удерживает память. Если вы оставите компьютер включенным на неделю с открытым Firefox, вы заметите, что его объем памяти будет постоянно увеличиваться. После YouTubing, Google Play Musicing и просмотра у меня в памяти остается 2–4 ГБ - что сокращается до 300 МБ после перезапуска процесса. Это из-за его особенностей кэширования, и это поведение разработано.

Я склонен полагать, что процесс SVCHost работает именно так, как и должен. Сколько сервисов работает на вашем сервере? 1GB Не звучит относительно - хотя это зависит от того, какие службы вы используете.

Другие вопросы по тегам