Исследование утечки памяти svchost/nsi с данными

Исследование утечки памяти svchost/nsi с данными

svchostи nsiв частности, постоянно ассоциируются с утечками памяти на протяжении многих лет, когда поиск в Google выдает много результатов (но мало решений). Связанные вопросы ссвязанные ответыВ прошлом меня много раз спрашивали на форуме superuser, но все, что я видел, это вопросы людей о том, как определить, какой процесс содержит утечку, что не сильно помогает, если я и так это знаю.

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

Единственное, что, как предполагалось, могло бы решить эту проблему, — это применение обновления KB 2950358 (извините, ссылку дать не могу из-за отсутствия информации), но установщик просто сообщает, что это обновление неприменимо к этой системе.

Машина, ОС и ПО: Win7 Pro x64, 8 ГБ памяти с видеокартой nVidia GTX 580 (драйверы от nVidia, 372.54 от 15 августа, что на момент написания статьи — 15 дней назад). Почти всегда запущены следующие процессы: Spotify, Chrome (в настоящее время v52.0.2743.116), Skype (в настоящее время 7.26.0.101) и несколько процессов Cygwin и minttyInternet Explorer.bashsshнетустановлены (кроме тех частей, которые нельзя удалить). Обычные надстройки браузера, такие как flash для yt и т. д. Ничего сверхъестественного, хотя некоторые из них интенсивно используют сеть и теоретически могут быть замешаны, если верить KB 2847346. Все обновления Windows, включая последнее необязательное обновление Rollup, были применены.

Пропустив некоторые промежуточные шаги, я выделил nsiего в отдельный процесс svchost, перезагрузил и затем каждую секунду регистрировал вывод tasklistпроцесса для идентификаторов PID nsiи svchostтого, к которому nsiон принадлежал. Результаты представлены здесь.; конечно же, последний в основном плоский, но nsiрастет с постоянной (если не с возрастающей) скоростью.

В то же время я использовал procmonзапись системных вызовов, сделанных nsi, но все, кроме 6 событий, были событиями Thread Create и Thread Exit, что не очень полезно. Что бы ни вызывало проблему, оно не заставляет nsiделать собственные системные вызовы.

Прежде чем я разделился nsi, я делал похожую трассировку в течение почти четырех дней, и этот svchostэкземпляр начался с 24 МБ и непрерывно рос примерно до 2150 МБ, прежде чем я остановил его, причем скорость изменения, по-видимому, увеличивалась со временем. В прошлом я видел, как проблемный svchostпроцесс превышал 6 ГБ, но при запуске procmonэто была точка, в которой у меня начинала заканчиваться память. Пару раз часть памяти освобождалась, но не так много, как было выделено. Я могу позже прикрепить ссылку на этот график, если кто-то захочет его увидеть.

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

Есть ли какой-либо инструмент для отслеживания того, какие процессы делают запросы?изконкретная услуга?

Каковы мои следующие действия, учитывая, что, по-видимому, соответствующее исправление базы знаний не применимо?

Связанный контент