У меня есть хост Hyper-V на базе Windows Server 2012 R2 с гостевыми виртуальными машинами Windows Server 2012 R2, а также виртуальными машинами на основе Debian 7.6. Динамическая оперативная память работает на гостях Windows нормально. Но в Linux это не так, и виртуальная машина использует своп вместо того, чтобы получать больше оперативной памяти от хоста!
~#free -m
total used free shared buffers cached
Mem: 490 484 5 0 1 6
-/+ buffers/cache: 476 13
Swap: 1287 106 1181
Некоторое время спустя:
~# free -m
total used free shared buffers cached
Mem: 490 484 5 0 1 6
-/+ buffers/cache: 476 13
Swap: 1287 110 1177
Как видите, использованный своп увеличился со 106 МБ до 110 МБ, а реальная оперативная память по-прежнему составляет 490 МБ. В настройках Hyper-V я настроил следующее:
RAM on startup: 512MB
Minimal RAM: 512MB
Maximum RAM: 6000MB
Я активировал модули ядра для инструментов интеграции Hyper-V, используя http://blogs.msdn.com/b/virtual_pc_guy/archive/2010/10/21/installing-ubuntu-server-10-10-on-hyper-v.aspx Итак, активируются следующие модули ядра:
hv_vmbus
hv_storvsc
hv_netvsc
В выводе lsmod говорится, что hv_blkvsc не активирован, я думаю, это потому, что на сервере нет графического интерфейса.
По данным Microsoft, Debian не поддерживает динамическую память Hyper-V.