8.4. 客户机虚拟机内存分配
以下流程演示了如何为客户机虚拟机分配内存。这个分配和分配只在启动时自动启动,对任何内存值的任何更改都不会在下一次重启时生效。每个客户机可以分配的最大内存为 4 TiB,提供此内存分配不多于主机物理机器资源可以提供的。
有效的内存单元包括:
b
bytes
用于字节KB
对于千字节(103 或块 1000 字节)k
或KiB
用于 kibibytes(210 或块 1024 字节)MB
兆字节(10 个6 或块 1,000,000 字节)M
或者MiB
用于兆字节(220 或块 1,048,576 字节)GB
千兆字节(109 或块 1,000,000,000 字节)G
或GiB
用于千兆字节(230个 或块为 1,073,741,824 字节)TB
太字节(1012 或块 1,000,000,000 字节)T
或者TiB
用于 tebibytes(240 或块 1,099,511,627,776 字节)
请注意,所有值将被 libvirt 舍入到最接近的基位字节,并可进一步舍入为管理程序支持的粒度。有些虚拟机监控程序还至少强制实施,如 4000KiB(或 4000 x 210 或 4,096,000 字节)。这个值的单位由可选属性
memory unit
决定,它默认为 kibibytes(KiB)作为测量结果单位,其中给出的值乘以 210 或 1024 字节的块。
如果客户机虚拟机崩溃的可选属性
dumpCore
,则可用来控制客户机虚拟机的内存是否应该包含在生成的 coredump(dumpCore='on'
)中,或者不包含(dumpCore='off'
)。请注意,默认设置为 on
,因此如果参数没有设置为 off
,则客户机虚拟机内存将包含在 coredump 文件中。
currentMemory
属性决定客户机虚拟机的实际内存分配。这个值可能小于最大分配量,允许即时对客户机虚拟机内存进行膨胀。如果省略此项,则默认为与 memory 元素相同的值。unit 属性的行为与内存的行为相同。
在本节的所有情况下,需要更改域 XML,如下所示:
<domain> <memory unit='KiB' dumpCore='off'>524288</memory> <!-- changes the memory unit to KiB and does not allow the guest virtual machine's memory to be included in the generated coredump file --> <currentMemory unit='KiB'>524288</currentMemory> <!-- makes the current memory unit 524288 KiB --> ... </domain>