Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

7.4. 块 I/O 调优技术

本节介绍了在虚拟环境中调优块 I/O 性能的更多技术。

7.4.1. 磁盘 I/O Throttling

当多个虚拟机同时运行时,它们可以通过过度磁盘 I/O 影响到系统性能。KVM 中的磁盘 I/O 节流提供了设置从虚拟机发送到主机机器的磁盘 I/O 请求的限制。这可阻止虚拟机过度利用共享资源并影响其他虚拟机的性能。
在各种情况下,磁盘 I/O 节流非常有用,例如,属于不同客户的客户机虚拟机在同一主机上运行,或者为不同的客户机提供服务质量保障时。磁盘 I/O 节流还可用来模拟较慢的磁盘。
I/O 节流可以独立于附加到客户机的每个块设备应用,并支持对吞吐量和 I/O 操作的限制。使用 virsh blkdeviotune 命令为虚拟机设置 I/O 限制:
# virsh blkdeviotune virtual_machine device --parameter limit
device 为附加到虚拟机的一个磁盘设备指定唯一的目标名称(<target dev='name'/>)或源文件(<source file='name'/>)。使用 virsh domblklist 命令输入磁盘设备名称列表。
可选参数包括:
total-bytes-sec
吞吐量总吞吐量上限(以字节/秒为单位)。
read-bytes-sec
每秒的读取吞吐量限制(以字节为单位)。
write-bytes-sec
每秒写入吞吐量限制(以字节为单位)。
total-iops-sec
每秒总 I/O 操作限制。
read-iops-sec
每秒读取 I/O 操作限制。
write-iops-sec
每秒写入 I/O 操作限制。
例如,要将 virtual_machine 上的 vda 节流为每秒 1000 个 I/O 操作,每秒 50 MB,运行这个命令:
# virsh blkdeviotune virtual_machine vda --total-iops-sec 1000 --total-bytes-sec 52428800