1

У меня есть новый компьютер с 128 ГБ оперативной памяти и установлена только 64-битная ОС Win 7 вместе с соответствующими драйверами оборудования и т.д. Не установлено другое программное обеспечение. он имеет Samsung 850 Pro EVO SSD в качестве основного жесткого диска и двойной GTX980 в SLI. Когда я запускаю компьютер, он использует 7 ГБ оперативной памяти, оставляя мне только 121 ГБ. Все мои другие машины используют только около 2-2,5 ГБ оперативной памяти на холостом ходу.

Мне нужен этот ОЗУ для обработки больших (120 ГБ) наборов данных с помощью программного обеспечения фотограмметрии, а не для ускорения запуска другого программного обеспечения (для которого не установлено ни одного)????!!

Я проверил весь запущенный процесс в диспетчере задач, и он не добавляет до 7 ГБ. просто не может быть 7 ГБ программного обеспечения, которое необходимо загрузить в ОЗУ. Как я вижу, что использует этот оперативной памяти и, что более важно, остановить его от использования оперативной памяти?

Добавлен снимок экрана rammap - большой пейджинг в невыгружаемом пуле. как мне избавиться от этого

Снимок экрана Poolmon

Poolmon показывает не более 30 МБ, используя не пул страниц. В poolmon нет 5 ГБ страниц без пула. Я предполагаю, что нет утечки памяти.

Любые другие идеи?

1 ответ1

3

У вас есть утечка памяти, вызванная драйвером. Посмотрите на высокое значение памяти невыгружаемого ядра. В вашем случае это более 5,6 ГБ. Вы можете использовать poolmon, чтобы увидеть, какой драйвер вызывает высокую загрузку .

Установите Windows WDK, запустите poolmon, отсортируйте его через P после типа пула, чтобы не выгружаемый был сверху, и через B после байтов, чтобы увидеть тег, который использует больше всего памяти. Запустите poolmon, перейдя в папку, где установлен WDK, перейдите в Инструменты (или C:\Program Files (x86)\Windows Kits\8.1\Tools\x64) и нажмите poolmon.exe.

Теперь посмотрите, какой пул тегов использует больше всего памяти, как показано здесь:

Теперь откройте командную строку и запустите команду findstr. Для этого откройте командную строку cmd и введите «cd C:\Windows\System32\drivers», чтобы перейти в каталог драйверов без кавычек. Затем введите findstr /s __ *.* , Где __ - это тег, который вы видите в poolmon.

После этого, чтобы увидеть, какой драйвер использует этот тег:

Теперь перейдите в папку драйверов (C:\Windows\System32\drivers) и щелкните правой кнопкой мыши нужный драйвер (intmsd.sys в приведенном выше примере изображения). Нажмите Свойства, перейдите на вкладку сведений, чтобы найти название продукта. Ищите обновление для этого продукта.

Если вы не можете найти драйвер для тега пула, посмотрите файл pooltag.txt, если тег используется драйвером Windows.

Здесь вам нужно отразить рост использования пула с помощью xperf. Сначала вам нужно установить Windows Performance Toolkit. Затем откройте приглашение cmd (cmd.exe) от имени администратора и выполните следующее:

xperf -on BASE+Pool -stackwalk PoolAlloc+PoolFree -buffersize 2048 -MaxFile 1024 -FileMode Circular && timeout -1 && xperf -d C:\trace_pool_alloc.etl

Теперь откройте его в WPA.exe, загрузите символы отладки и найдите тег, который вы видели в poomon под AIFO (выделенный insde освобожден снаружи), и израсходуйте стек. Из названий функций вы можете иметь представление о том, что происходит.

В этом примере использование тега FILE происходит от инструмента под названием locate32, который сканирует жесткий диск для создания поискового индекса.

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