23.17.20. 内存 Balloon 设备
Balloon 设备可以指定虚拟机 RAM 的一部分,不被使用(称为" Bon tion the balloon"的进程),以便释放该内存供主机释放,或用于该主机上的其他虚拟机。当虚拟机再次需要内存时,可以暂停 balloon,主机可以将 RAM 重新分发到虚拟机。
内存气球大小由
<当前内存>
与 <内存设置>
之间的区别决定。例如,如果 <内存>
设置为 2 GiB,并且 <当前Memory>
设为 1 GiB,则 balloon 包含 1 GiB。如果需要手动配置,可以使用 virsh setmem 命令设置 <当前的Memory>
值,并使用 virsh setmaxmem 命令设置 <内存值>
。
警告
如果
<修改当前内存>
的值,请确保为客户机操作系统有足够的内存才能正常工作。如果设置值太低,客户机可能会变得不稳定。
虚拟内存 Balloon 设备会自动添加到所有 KVM 客户机虚拟机。在 XML 配置中,这由
<memballoon>
元素表示。内存膨胀由 libvirt
服务管理,并在适当的情况下自动添加。因此,除非需要分配一个特定的 PCI 插槽,否则不需要在客户机虚拟机 XML 中显式添加此元素。请注意,如果需要显式禁用 <memballoon>
设备,可以使用 model='none'
。
以下示例显示了
libvirt
自动添加的 memballoon 设备:
图 23.77. 内存 balloon 设备
... <devices> <memballoon model='virtio'/> </devices> ...
以下示例显示了手动添加使用静态 PCI 插槽 2 请求的设备:
图 23.78. 手动添加内存 balloon 设备
... <devices> <memballoon model='virtio'> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </memballoon> </devices> ...
所需的
模型
属性指定提供哪种类型的 balloon 设备。有效值特定于虚拟化平台;在 KVM 管理程序中,'virtio'
是默认设置。