6

Кто-нибудь знает, почему Process Explorer может показывать эти странные значения для использования памяти моего экземпляра Virtual Box?

Вот реальные цифры:

VMMap

Но вот что показывает Process Explorer:

альтернативный текст

альтернативный текст

Таким образом, процесс выделил 1,2 ГБ виртуальной машины, из которых 1,1 ГБ является частной. Но Process Explorer видит только 196 МБ виртуальной машины и только 48 МБ личной памяти! Что тут происходит?

РЕДАКТИРОВАТЬ: Эта память не просто зарезервирована. Это на самом деле используется:

альтернативный текст

4 ответа4

4

Марк Руссинович любезно объяснил, что это происходит потому, что VirtualBox блокирует большой объем памяти, что требует от ОС сохранить ее в рабочем наборе.

Однако, если вы просто попробуете VirtualLock с кучей оперативной памяти, вы не увидите этого. Все это ОЗУ будет счастливо учтено, как и должно быть. Так что другое дело в том, как VirtualBox распределяет эту память. Кстати, это также влияет на ProcessHacker.

Странная вещь в этом заключается в том, что ProcessHacker правильно перечисляет все выделенные диапазоны памяти, и простое их добавление даст правильное значение, однако счетчик, сообщаемый ОС, неверен. На несколько ГБ. Нехорошо!

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

1

В VMMap может быть ошибка , из-за которой Committed включает отброшенные страницы или страницы в файле подкачки.

Таким образом, теперь это выглядит как неактивная память ... Он выделяется просто как резерв (или как баг).

Рабочий набор содержит только активную память, VMMap и Process Explorer показывают один и тот же WS ...

0

Использование SysInternals RamMap Я думаю, вы можете видеть, что оперативная память записана как «DriverLocked».

Однако я понятия не имею, как вы на самом деле работаете с драйвером, который его заблокировал. И, что важно, драйвером будет не программа VirtualBox, а драйвер, который VirtualBox установил и использует.

Если простое отключение виртуальных машин не освобождает оперативную память из пула «DriverLocked», вы можете использовать такой инструмент, как автозапуск, чтобы увидеть, какие драйверы загружаются при запуске, и отключить их. Это немного ручной процесс, поэтому было бы очень интересно, если кто-нибудь знает, как определить, какие драйверы заблокировали память.

0

Из оперативной памяти, виртуальной памяти, файла подкачки и всего такого :

Память, зафиксированные байты: это мера спроса на виртуальную память. Он показывает, сколько байтов было выделено процессами и для которых операционная система зафиксировала фрейм страницы ОЗУ или слот страницы в файле подкачки (или оба). По мере того, как количество обязательных байтов превышает доступную оперативную память, увеличивается объем подкачки, а также увеличивается объем используемого файла подкачки. В какой-то момент активность подкачки начинает существенно влиять на воспринимаемую производительность.

Поэтому я считаю, что количество «Зафиксированных байтов» не имеет ничего общего с VirtualBox - это всего лишь общее количество страниц физической памяти всех запущенных процессов в системе. В этом случае данные, возвращаемые Process Explorer, верны.

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