Я выполняю VirtualBox на машине Windows XP с 2 ГБ RAM. Я создал виртуальную машину Ubuntu и выделил ее основная память 750 МБ.
Только для помещения его в тест я выполнил 20 вещей сразу на виртуальной машине. Согласно "вершине" в человечности, 750 megs памяти использовались, а также значительная область подкачки.
Однако назад в Windows Task Manager, VitrualBox использовал только 45,000K памяти. Поскольку я попросил, чтобы виртуальная машина сделала все больше, использование ЦП процесса VirtualBox повысилось (в Windows), но использование памяти осталось таким же.
Как может виртуальная машина, которая использует 750 МБ памяти, только используют 45 МБ памяти на реальной машине?
Я предполагаю, что ответ - то, что виртуальная машина не использует реальную память, но моделируемую память (т.е. область подкачки), но это, верные чувства, мгновенные как она, работают в RAM.
ОБНОВЛЕНИЕ: я играл вокруг с perfmon, как предложено. Даже подведение итогов, все, о чем я могу думать, это все еще, кажется, поднимает меньше чем 300 megs..., таким образом, это - все еще тайна.
Process VirtualBox VirtualBox#1 Total
PoolNonpagedBytes 5,840 42,552 48,392
PoolPagedBytes 119,796 166,892 286,688
PrivateBytes 8,884,224 52,719,616 61,603,840
VirtualBytes 75,939,840 161,202,176 237,142,016
Sum 84,949,700 214,131,236 299,080,936
Столбцы в Диспетчере задач могут дать вводящим в заблуждение числам - для точного использования памяти для каждого процесса, Вы могли использовать perfmon (Монитор производительности в Панели управления) и посмотреть на "частные байты" числа.
Для показа этого войдите в perfmon, нажмите для добавления счетчика (я - вид Ctrl+I человека). "Объект управления" был бы "Процессом" с "Частными байтами", находящимися в списке счетчиков - очевидно, необходимо будет выбрать соответствующий процесс из правого списка.
Это могла быть виртуальная память, файлы с отображенной памятью или что-то подобное.
Вы попытались отобразить другие столбцы в Диспетчере задач?
С некоторыми решениями для виртуализации в соответствии с Linux способ, которым они выделяют память, заставляет ее появиться к ядру хоста как специальный файл с отображенной памятью (во многом как /proc/kcore
специальный файл), таким образом, это считается в "кэшируемом" количестве в выводе от free
, не "используемое" количество.
Я предполагаю, что что-то подобное происходит с Вашей средой Windows: 45 МБ будут использоваться процессами управления VirtualBox, и эти 750, выделенные самому VM, будут считаться в другом месте.
Не верьте Диспетчеру задач. Это не видит все.
Эта проблема чаще всего замечается с SQL Server, например, С Sql, я никогда не находил никого, кто сказал мне способ получить точную информацию от Диспетчера задач, который приведет меня полагать, что число не скрыто в одном из других столбцов.