Show Table of Contents
6.5. 块 I/O 调试技术
这一部分描述了更多关于虚拟化环境中块 I/O 性能调试的技术。
6.5.1. 磁盘 I/O 节流
当若干虚拟机同时运行时,它们有可能因过度使用磁盘 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 节流至 I/O 每秒 1000、吞吐量为每秒 50 MB,请运行以下命令:
# virsh blkdeviotune virtual_machine vda --total-iops-sec 1000 --total-bytes-sec 52428800
6.5.2. 多队列 virtio-scsi
多队列 virtio-scsi 提供了改进的存储性能和 virtio-scsi 驱动中的可扩展性。该命令使每个虚拟 CPU 可以使用独立队列和中断,从而不会影响到其他虚拟 CPU。
6.5.2.1. 配置多队列 virtio-scsi
Red Hat Enterprise Linux 7 中默认禁用多队列 virtio-scsi。
如需启用客机中的多队列 virtio-scsi 支持,在客机 XML 配置中添加以下命令,其中 N 为虚拟 CPU 队列的总数:
<controller type='scsi' index='0' model='virtio-scsi'>
<driver queues='N' />
</controller>
Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.