4

Диспетчер задач Windows XP может отображать два разных столбца, касающихся использования памяти процессами. Один из них - Mem Usage а другой - VM Size (по умолчанию не отображается, его необходимо активировать).

Из того, что я собрал, VM size - это размер всего пространства памяти, занимаемого процессом, а Mem Usage памяти - это объем памяти, выделенный и используемый в настоящее время. Это предположение подтверждается большинством процессов, когда VM Size только немного больше, чем Mem Usage . Например, мой Outlook в настоящее время имеет 79 724 К в VM Size и 56 600 К в Mem Usage .

Но он не работает для других процессов, таких как Firefox, который в настоящее время имеет 171900 К для Mem Usage памяти и только 156440 К по VM Size . Как процесс может использовать больше памяти, чем выделено ему виртуальной памяти?

Так что, возможно, моя интерпретация этих столбцов неверна. Что они на самом деле значат?

6 ответов6

1

Из разделов справки диспетчера задач Windows XP:

Использование памяти
В диспетчере задач текущий рабочий набор процесса в килобайтах. Текущий рабочий набор - это количество страниц, находящихся в данный момент в памяти. На вкладке Процессы диспетчера задач заголовок столбца - «Использование памяти».

Размер виртуальной памяти
В диспетчере задач - объем виртуальной памяти или адресного пространства, выделенный процессу. На вкладке «Процессы диспетчера задач» заголовок столбца - «Размер виртуальной машины».

Таким образом, Mem Usage - это объем физической оперативной памяти, выделенной в настоящее время процессу, а VM Size - это объем виртуальной (дисковой) памяти, выделенной в данный момент процессу.

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

0

Извините, но все эти ответы не попадают в цель.

Краткий ответ: столбец VM size не отражает общее виртуальное адресное пространство ("vas"), определенное процессом. Это только часть этого. В частности, это адресное пространство с частной фиксацией (также известное как "фиксация" процесса).

В то время как столбец Mem Usage показывает подмножество общего виртуального адресного пространства процесса, которое является "допустимым" для процесса, то есть к нему можно получить доступ, не вызывая ошибки страницы.

(Обычно, но неточно утверждать, что это подмножество находится "в ОЗУ". "Действительный" - то есть в рабочем наборе процесса - означает, что он находится в памяти и к нему можно получить доступ, не вызывая ошибки страницы. Но из-за действия кэшей страниц (резервные и измененные списки страниц), а также совместно используемой памяти обычно имеется довольно много vas процесса, который находится в ОЗУ, но требует доступа к странице сбоя ... но это будет "мягкая" ошибка страницы, то есть та, которая не связана с дисковым вводом / выводом. После разрешения страница находится в рабочем рабочем наборе, и дальнейшие ссылки на нее не приведут к ошибкам ... если только она позднее не выйдет из рабочего набора.)

Так что, если VM size - это не весь виртуальный размер процесса, то где же он? Другим основным вкладчиком в общее виртуальное адресное пространство процесса является сопоставленное адресное пространство. Разница между ними в том, что частные преданные вас - с этого момента я буду просто называть это частными; не существует такой вещи, как private non-commit - поддерживается файлом подкачки, в то время как сопоставленный vas поддерживается файлами, на которые он отображается.

"Подкреплено" означает, что часть, которая не может быть сохранена в ОЗУ, хранится в этих файлах.

Есть также невыгружаемое виртуальное пространство (очень маленькое) и, возможно, "физически отображаемая" память (очень редко используемая).

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

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

Столбец Mem Usage должен был называться «Рабочий набор (всего)». Как правило, он будет меньше, чем общее число страниц, к сожалению. Диспетчер задач в XP не имеет счетчика для последнего. Но в любом случае, столбец Mem Usage показывает, какая часть общего виртуального адресного пространства страниц может быть использована процессом без возникновения ошибки страницы. Некоторые из них будут физическими страницами, связанными с частными зафиксированными страницами, а некоторые - с отображенными страницами.

Если бы в диспетчере задач XP было доступно еще несколько столбцов, вы бы увидели отношения, которые вы ожидаете увидеть: общее число доступных для просмотра страниц (для которых нет счетчика) никогда не должно быть меньше общего рабочего набора (называемого Mem Usage в XP); и частное выделенное значение никогда не должно быть меньше, чем частная часть рабочего набора процесса.

Диспетчер задач в более поздних версиях Windows имеет еще несколько таких счетчиков. Инструмент Process Explorer от Sysinternals имеет еще больше. В Process Explorer:

"Рабочий набор" - это общий рабочий набор процесса

"WS Shareable" - это подмножество итогового значения, которое потенциально может использоваться совместно с другими процессами (это подмножество сопоставленных vas)

"WS Shared" - это подмножество "WS Shareable", которое фактически используется совместно с другими процессами, т. Е. Оно также входит в рабочие наборы некоторых других процессов.

"WS Private" - это подмножество "рабочего набора", которое нельзя использовать совместно с другими процессами. Это связано и подмножество частных совершенных процессов

"Private Bytes" - это частное обязательство процесса. Вы заметите, что оно всегда больше, чем "WS Private", то есть отношения, которые вы ищете.

"Виртуальный размер" - это общее количество несвободных сосудов в процессе. Это включает в себя частные и общие vas, а также "зарезервированное" адресное пространство. "Зарезервировано" недоступно, практически не занимает физическое пространство, но резервирует диапазоны виртуальных адресов. Он не включает в себя физически отображаемые области (он же "память AWE"). На x64 в Win 8.1 и более поздних версиях он также может включать гигантскую область (2 147 483 648 К или 2 ТиБ), выделенную для новой функции под названием "Контроль потока защиты". Информацию об этом смотрите в этой записи в блоге Алекса Ионеску.

0

Единственное объяснение, которое я вижу, это фрагментация памяти. Когда процесс выделяет 1 октет, он считается 1 октетом в размере виртуальной машины. Но этот 1 октет занимает страницу физической памяти: для операционной системы Windows страница составляет 4 КБ. Таким образом, если память процесса фрагментирована и использует много маленьких блоков, это может привести к огромному использованию физической памяти по сравнению с реальным выделенным объемом памяти.

0

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

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

Если это не так. Может быть, что FF утечка памяти или расширение является виновником. У меня была проблема, как там с плагином DivX Web Player на бета-версии Firefox.

-1

Просто догадываясь, могут ли это быть блоки совместно используемой памяти, которые были выделены Firefox, затем переданы какой-то другой задаче и не отображены FF, но все еще считаются принадлежащими ей?

-1

Размер виртуальной машины в диспетчере задач относится к тому, сколько страниц выполняется подкачкой к фактической виртуальной памяти (файлу подкачки) на диске. Linky

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