Обнаружение утечки памяти с помощью тегов LHAN и YHAN

418
ner0

Недавно у меня начались проблемы с одной системой с Windows Server 2012 R2 и утечкой памяти. Объем памяти без постраничной памяти достигнет 8,9 ГБ из 10 ГБ в течение 12 часов.

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

Поскольку проблемы начались сравнительно недавно, я имею в виду несколько виновников:

  1. Гостевая ОС - это виртуальная машина, работающая на хосте ESXi, хост был обновлен до ESXi v6.7 около недели назад (также обновлены инструменты VMware), хотя проблема только началась 2 дня назад.
  2. В ОС установлена ​​Panda Adaptive Defense 360, она была установлена ​​2 или 3 недели назад, но вполне возможно, что обновление было установлено и теперь может привести к хаосу.
  3. Последнее обновление Windows было установлено 3 дня назад. Это то, о чем я менее склонен верить, но мы никогда не узнаем.

Я буду продолжать размолоть, но тем временем любая помощь будет оценена.

Кстати, вот несколько скриншотов:

ОБНОВЛЕНИЕ 1: после перезагрузки тег YHAN исчез, в то время как тег LHAN теперь занимает всего 259 КБ. Я буду следить за использованием Poolmon и, возможно, Windows Performance Recorder. Тем не менее, любая теория приветствуется.

ОБНОВЛЕНИЕ 2: Используя полезное предложение из комментария HelpingHand, я попытался найти строки «LHAN» и «YHAN» во всех файлах в папке System32 \ drivers . К моему удивлению, один файл содержал обе строки: NNSNAHSL.sys:

File description: Network Activity Hook Server LWF File version: 6.0.0.68 Product name: Nano Network Security Product version: 4.2.0.404 Legal copyright: © Panda 2017 Original filename: NNSNAHSL.SYS 

Единственная причина, по которой я не помещаю предложение HelpingHand в качестве ответа (пока), заключается в том, что я до сих пор не уверен, как произошла утечка, и поэтому не могу пока проводить дальнейшее тестирование. LHAN по-прежнему является единственным из обоих тегов, фигурирующих в мониторинге пула, и сохраняет свой размер выделения на уровне 259 КБ.

ОТВЕТ: Поскольку этот вопрос был помечен как дубликат, игнорируя при этом особенности вопроса и ответа, я оставлю ответ прямо здесь, в теле вопроса:

** После отслеживания потенциального драйвера (NNSNAHSL.SYS) я попытался выяснить, когда произошла утечка и почему, чтобы проанализировать и исправить ситуацию, вместо того, чтобы просто предполагать, что это должен быть тот или иной драйвер, но не быть уверенным, что он был и как протекал. Оказывается, что утечка начиналась и была гораздо более заметной, каждый раз, когда происходило сетевое соединение. Копирование большого файла (~ 3 ГБ) по сети сразу же приведет к стремительному увеличению числа отображаемых страниц. После некоторых проб и ошибок я обнаружил, что проблема была вызвана конфликтом между драйвером WinPcap и сервером Panda Network Activity Hook Server LWFВодитель. Проблема возникала с некоторой частотой, потому что я использовал XArp, который постоянно собирает данные с использованием WinPcap. Отключение одного из двух полностью решает проблему. Причина, по которой я думаю, что этот вопрос и ответ заслуживают того, чтобы их считали уникальными, заключается в особой проблеме и тегах. Хотя я согласен с тем, что связанный с этим вопрос / ответ по поводу большого использования памяти Windows 10 (неизвестная причина) гораздо более информативен в общих чертах. **

Poolmon

RamMap

0
Я бы посоветовал искать все строки в% SystemRoot% \ System32 \ drivers для строк. Например, я бы скачал Strings - https://docs.microsoft.com/en-us/sysinternals/downloads/strings и, возможно, добавил бы это к пути. Затем запустите: `strings.exe * | findstr LHAN` и `strings.exe * | findstr YHAN` Запустив Process Explorer и просмотрев системный процесс для загруженных модулей, вы получите все драйверы и пути для поиска. Это также поможет: https://channel9.msdn.com/Shows/Defrag-Tools/ Defrag-Tools-48-WPT-память-анализ-Pool HelpingHand 6 лет назад 1
Так в чем именно твой вопрос? Если вы решили свою проблему, вам следует вместо ответа отредактировать свой ответ и вернуть вопрос обратно к его предыдущей версии. Ramhound 6 лет назад 0
@Ramhound Вопрос все еще стоит: как мне найти источник неизвестных тегов, чтобы остановить утечку памяти? Пересмотр моего вопроса - это просто обновление статуса тегов в пуле после перезапуска. Я должен был принудительно перезагрузить сервер этим утром и поздно днем ​​снова, предположительно, из-за той же самой проблемы (я предполагаю, что по утрам это было почти не отвечает из-за этого). Следовательно, я не решил проблему. ner0 6 лет назад 0
Похоже, что ваша утечка памяти содержалась в вашем программном обеспечении безопасности (я полагаю, Panda AV) Ramhound 6 лет назад 0
@ ner0, поздравляю с этим. Мое прочтение ситуации с дубликатами таково, что ваш случай является конкретным примером того, что в общих чертах освещено в ответе на другой вопрос. Есть тонны водителей, которые могли или были известны, чтобы утечь. Наиболее эффективный подход к оказанию помощи читателям - это общие советы о том, как решить, что на компьютере читателя. Это похоже на то, как сайт обрабатывает вопросы о вредоносном ПО (слишком много примеров и ограниченное количество похожих решений). Я голосую за то, чтобы оставить этот дубликат, но я готов пересмотреть вопрос, можете ли вы уточнить дело для повторного открытия. fixer1234 6 лет назад 0
@ fixer1234 Честно говоря, я полностью согласен с тем, что решение этого вопроса классифицируется как дубликат. Это слишком специфично, и реальность такова, что это не поможет людям, у которых нет очень похожих конфликтов. Достаточно приятно, что теперь вы можете искать в сети _LHAN_ или _YHAN_ и не ограничиваться результатами, которые не имеют ничего общего с ИТ. ner0 6 лет назад 0
это дубликат, оба вопроса касаются того, как анализировать слишком высокое (не) использование выгружаемого пула. magicandre1981 6 лет назад 0
Да, это дубликат, но я не уверен, почему мы должны продолжать идти по кругу об этом. ner0 6 лет назад 0
@ magicandre1981 Я не могу прокомментировать ваш ответ из-за низкого числа повторений, но я опущу это здесь: я не уверен, что случайная проблема с `findstr / s __ *. *` только возвращает соответствующий контент, но не имя файла связано с ОС или какой-то конкретной конфигурацией командной строки, но это случилось, когда я попробовал. Это сработало при добавлении флага для вывода номера строки `findstr / s / n __ *. *` Или использования флага для вывода только имени файла `findstr / s / m __ *. *` ner0 6 лет назад 0
«Основная цель закрытия дублирующих вопросов - помочь людям найти правильный ответ, ** собрав все эти ответы в одном месте **», таковы правила здесь. magicandre1981 6 лет назад 0
Тем не менее, никто не оспаривает, что это дубликат. Что я должен сделать или сказать, чтобы сделать это более ясным, чем сказать: «Я полностью согласен с решением вопроса, который классифицируется как дубликат» ner0 6 лет назад 0

0 ответов на вопрос