Я запускаю Windows 7 SP1 на MacBook Pro через Boot Camp (то есть он загружается изначально).

Недавно services.exe начал демонстрировать поведение, при котором каждые 15 минут или около того он в течение 1-2 минут будет наращивать использование всей доступной памяти в системе (в моем случае все 8 ГБ памяти). Он останется там на пару минут, а затем снова станет нормальным.

Сам процесс идет от использования ~ 40 МБ памяти до ~ 5 ГБ + памяти и затем обратно до ~ 40 МБ.

Я получил дамп процесса, когда он наращивался с помощью procdump а файл 3 ГБ содержал повторяющиеся данные - это было похоже на указатели на вызовы функций или адреса возврата, когда я смотрел на него с помощью windbg .

Я также взглянул на procmon но данные были не очень поучительными - смотреть было не на что, и то, что там выглядело нормально.

Я ищу указатели на то, как лучше смотреть на использование памяти приложением, чтобы я мог попытаться выяснить, что вызывает такое поведение.

2 ответа2

2

Хорошо. Если это происходит примерно каждые 15 минут, вы можете ждать, пока это произойдет, и действовать быстро. Не обязательно сбрасывать процесс.

Services.exe - это процесс, запускающий службы. Службы не запускаются сами по себе, они размещаются в процессах svchost.exe .

Итак, чтобы знать, почему это происходит, почему ваша машина собирает ОЗУ, вам нужно знать, какая служба вызывает это.

Для этого вы можете использовать инструмент Microsoft Sysinternals, который называется Process Explorer. С помощью этого инструмента вы можете упорядочить процесс по памяти и, что более интересно, если вы щелкнете по процессу svchost.exe вы сможете увидеть, какие службы он выполняет. В Process Explorer вы можете видеть процесс по дереву родителей и потомков, чтобы вы могли видеть, какой дочерний процесс какого svchost вызывает проблему.

В Procesx Explorer вы также можете видеть, какие потоки были загружены в процессе (Yoy должен загрузить символы, чтобы увидеть их настоящие имена, просто зайдите в меню «Параметры», «Настроить символы»), если вы увидите какой-то странный поток, вы будете возможность видеть его потоки и видеть, какой поток, вероятно, вызывает зависание.

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

-1

Недавно я столкнулся с той же проблемой, но не смог выделить какой-либо сервис, вызывающий такое поведение. Также неисправная служба может привести к использованию памяти на svchost.exe, а не на services.exe. Наконец, я обнаружил, что доступ к огромному количеству файлов в зашифрованной папке EFS вызвал высокое использование памяти (например, большая проверка в хранилище GIT> 10 ГБ с небольшими файлами в зашифрованной папке EFS). Расшифровка папки, кажется, решила проблему для меня. Я думаю, что мне нужно переключиться на Bitlocker или что-то подобное ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .