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

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

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

Единственное, что можно было предположить для решения этой проблемы, - это применение 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. mintty, bash а также ssh процессы. Internet Explorer не установлен (за исключением битов, которые нельзя удалить). Обычные надстройки для браузера, такие как flash для yt и т. Д. Ничего необычного, хотя некоторые из них интенсивно используют сетевое взаимодействие и, теоретически, могут быть замешаны, если верить подобным KB 2847346. Все обновления Windows, включая последнее необязательное обновление, были применены.

Пропустив некоторые промежуточные шаги, я расстался 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 в этом виноват тот факт, что ни одно из его событий не особенно интересно.

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

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

0 ответов

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