原文网址:https://libvirt.org/formatdomain.html#id8
NUMA Node Tuning
<domain>
...
<numatune>
<memory mode="strict" nodeset="1-4,^3"/>
<memnode cellid="0" mode="strict" nodeset="1"/>
<memnode cellid="2" mode="preferred" nodeset="2"/>
</numatune>
...
</domain>
numatune
可选元素项numatune提供了如何通过控制虚拟机进程的NUMA策略对NUMA主机的性能进行调度。注意,仅支持QEMU。自0.9.3起。
memory
可选元素项memory指明了如何对NUMA主机的虚拟机进程进行内存分配。其包含多个可选属性项。属性项mode的可用值包含interleave、strict、preferred和restrictive,默认设置为strict。restrictive指明使用系统默认策略,仅有cgroups被用来限制内存节点,在memnode元素中将mode设置为restrictive。属性项nodeset指明了numa节点,其与vcpu元素项的cpuset属性项使用相同的语法。属性项placement(自0.9.12起)可被用来表明虚拟机进程的内存放置模式,其值可以为static或auto,是vcpu的placement的默认值,如果指定了nodeset则默认值为static。auto表明虚拟机进程只会从查询numad返回的咨询节点中集中分配内存,属性nodeset的值在指定auto的情况下将会被忽略。如果vcpu的placement设置为auto,且numatune未指定,则numatune的placement设置为auto,mode设置为strict。自0.9.3起。参阅 virDomainSetNumaParameters获取该元素的更多信息。
memnode
可选元素项memnode可以为每个虚拟机的numa节点指定内存分配策略。对于没有memnode元素的哪些节点,memory元素的默认值将会被使用。属性项cellid寻址应用设置的虚拟机NUMA节点。属性项mode和nodeset与memory元素中的对应值具有相同的含义和语法。设置与自动placement不兼容。qemu自1.2.7起。
Block I/O Tuning
<domain>
...
<blkiotune>
<weight>800</weight>
<device>
<path>/dev/sda</path>
<weight>1000</weight>
</device>
<device>
<path>/dev/sdb</path>
<weight>500</weight>
<read_bytes_sec>10000</read_bytes_sec>
<write_bytes_sec>10000</write_bytes_sec>
<read_iops_sec>20000</read_iops_sec>
<write_iops_sec>20000</write_iops_sec>
</device>
</blkiotune>
...
</domain>
blkiotune
可选元素项blkiotune为虚拟机提供了调节Blkio cgroup可调参数的能力。如果忽略该设置项,则其默认由操作系统提供。自0.8.8起。
weight
可选元素项weight是虚拟机的全部i/o负载。该值的范围是100-1000.在2.6.39内核后,该值的范围是10-1000.
device
虚拟机可能又有多个device元素项,以便深入调节虚拟机正在使用的每一个主机块设备的权重。注意多个磁盘(可参阅Hard drives, floppy disks, CDROMs章节)可能共享同一个主机块设备,如果他们被相同的主机文件系统中的文件备份,这也是为什么使用全局作用域的调节参数而非相关的每一个虚拟机磁盘设备的原因(与磁盘定义中的iotune元素项相反(可参阅Hard drives, floppy disks, CDROMs章节),而iotune元素项适用于单个独立的磁盘)。每一个device元素项有两个强制的子元素项,path描述了设备的绝对路径,而weight给出了设备的相对权重,权重范围是100-1000.在2.6.39版本内核之后,该值的范围变为10-1000.自0.9.8起。除此之外,也可使用如下的可选子元素项:
read_bytes_sec
以字节为单位的每秒可读吞吐量。自1.2.2起。
write_bytes_sec
以字节为单位的每秒可写吞吐量。自1.2.2起。
read_iops_sec
每秒i/o读操作限制。自1.2.2起。
write_iops_sec
每秒i/o写操作限制。自1.2.2起。
Resource partitioning
虚拟机管理程序可能允许将虚拟机放入资源分区,也可能嵌套所述分区。resource元素将与资源分区相关的配置项组织在一起。当前其支持partition子元素项,该子元素项的内容定义了放置虚拟机的资源分区的绝对路径。如果没有列出任何分区,虚拟机将会被放到默认分区中。应用程序或管理员有责任确保分区在虚拟机启动之前就已存在。只有默认分区(适用于特定虚拟机管理程序)可以默认假定已经存在。
...
<resource>
<partition>/virtualmachines/production</partition>
</resource>
...
资源分区当前在qemu和lxc中受到支持,在所有已安装的控制器中将分区路径映射到cgroups目录。自1.0.5起。
Fibre Channel VMID
FC SAN可以提供多个依赖于VMID的QoS等级和访问控制功能。它还可以收集每个虚拟机的遥测数据,这些数据可用于增强虚拟机的IO性能。可以通过fibrechannel元素项的appid属性项进行配置。该属性项包含了简单的字符串(最大128字节),内核可使用该属性项创建VMID。
...
<resource>
<fibrechannel appid='userProvidedID'/>
</resource>
...
使用该特征项要求支持光纤通道的硬件,内核编译时配置有 CONFIG_BLK_CGROUP_FC_APPID选项,且nvme_fc内核模块已加载。自7.7.0起。
本章节描述了用来代表作用域的xml文件格式,根据运行的作用于种类的格式变化,有一些可选配置项用来加载文件。对于特定虚拟机的细节可以查看
相关文件。