我有一台基于 Windows Server 2012 R2 的 Hyper-V 主机,该主机上有 Windows Server 2012 R2 客户虚拟机以及基于 Debian 7.6 的虚拟机。动态 RAM 在 Windows 客户机上运行良好。但在 Linux 上却不行,虚拟机使用的是交换空间,而不是从主机获取更多 RAM!
~#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
如您所见,使用的交换从 106MB 增加到 110MB,而实际 RAM 仍为 490MB。在 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 未激活,我认为这是因为服务器上没有 GUI。
答案1
据微软称,Debian不支持Hyper-V动态内存。