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


8

Я заметил, что мой рабочий сервер "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), и его основная функция - запуск собственных рабочих процессоров приложений.


У меня установлен SP1, но теперь, когда вы об этом говорили ... support.microsoft.com/kb/977357 get-hotfix -id KB977357 get-hotfix: Не удается найти запрошенное исправление на компьютере «localhost». Если у меня установлен SP1, не должно ли я установить это исправление?
agentvr

1
Пакет обновления сворачивает исправление вместе с ним, поэтому вы не найдете его в списке.
Натан C

4
ХОРОШО. Что ж, я бы сказал, что следующий шаг - выяснить, какой именно сервис потребляет память, и единственный способ сделать это - разбить их на свои собственные процессы svchost.exe по одному с помощью SC Config Servicename Type= own. См. Serverfault.com/questions/12278/…
Райан Райс

Вы уверены, что процесс является законным svchost.exe?
Конрад Гаевский

Вы также можете просто остановить / убить службы по одному и посмотреть, когда использование памяти упадет.
ssnobody

Ответы:


1

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

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

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

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


1

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

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

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


1

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.