Я тестирую CentOS 6.6 в Hyper-V (W2K12R2) с динамической памятью. Я установил для запуска и минимальной памяти значение 4096 МБ, а максимальный объем памяти - 16384 МБ. Размер буфера 20%.
После загрузки я вижу, что размер памяти составляет 3882 МБ из CentOS, а потребность в памяти составляет ~ 700 МБ в диспетчере Hyper-V в ОС хоста.
Затем я попытался создать пару монтировок tmpfs по 2 ГБ и заполнил их случайными данными. Поскольку он был больше 4 ГБ, размер памяти в гостевой ОС стал увеличиваться, и я увидел размер памяти как 5996 МБ.
Затем я удалил все из каталогов tmpfs, и назначенная память в ОС хоста стала 4096 МБ, требуя памяти 901 МБ. Но размер памяти в CentOS остался на уровне 5996 МБ. Использование памяти показано как 2940 МБ
Mem: 6140300k total, 3903940k used, 2236360k free, 116944k buffers
Swap: 0k total, 0k used, 0k free, 775396k cached
1. Должна ли гостевая ОС видеть уменьшение памяти?
2. Если нет, как я могу определить реальный объем памяти и использование памяти гостевой ОС?
Гости будут держаться за существующую память до тех пор, пока либо гость не будет перезагружен, либо не произойдет всплывающее окно, и хост не «украдет» обратно часть ОЗУ (которая отображается как используемая на гостевой системе). Вероятно, это связано с тем, что ОС не реагирует также на внезапное «отсутствие» ОЗУ (аналогично горячему добавлению, которое требует перезагрузки).