Я использую VirtualBox на компьютере под управлением Windows XP с 2 ГБ ОЗУ. Я создал виртуальную машину с Ubuntu и выделил ей базовую память в 750 МБ.
Просто чтобы проверить это, я запустил 20 вещей одновременно на виртуальной машине. Согласно «top» в Ubuntu, было использовано 750 мегабайт памяти, а также значительное пространство подкачки.
Однако в диспетчере задач Windows VitrualBox использовал только 45 000 КБ памяти. Когда я просил виртуальную машину делать все больше и больше, загрузка ЦП процесса VirtualBox возросла (в Windows), но использование памяти осталось прежним.
Как виртуальная машина, использующая 750 МБ памяти, может потреблять только 45 МБ памяти на физической машине?
Я предполагаю, что ответ заключается в том, что виртуальная машина использует не реальную память, а имитированную память (т. Е. Пространство подкачки), но она чувствует себя быстро, как будто она работает в ОЗУ.
ОБНОВЛЕНИЕ: я играл с perfmon как предложено. Даже суммируя все, что я могу придумать, все равно кажется, что он занимает менее 300 мегабайт ... так что это все еще загадка.
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
источник
В некоторых решениях по виртуализации в Linux способ, которым они распределяют память, заставляет ее отображаться ядру хоста в виде специального файла с отображением в памяти (очень похожего на
/proc/kcore
специальный файл), поэтому он учитывается в подсчете «кэшированных» в выходных данныхfree
, а не в «использованный» счет.Я предполагаю, что нечто подобное происходит в вашей среде Windows: 45 МБ будут использоваться процессами управления VirtualBox, а 750, выделенные для самой виртуальной машины, будут учитываться в другом месте.
источник
Это может быть виртуальная память, отображенные в память файлы или что-то подобное.
Вы пытались отобразить другие столбцы в диспетчере задач?
источник
Не верьте диспетчеру задач. Он не может видеть все.
Эта проблема более распространена в SQL Server, например, в Sql я никогда не нашел ни одного человека, который бы сказал мне способ получить точную информацию из диспетчера задач, который бы заставил меня поверить, что эта цифра не скрыта ни в одном из другие столбцы.
источник