当几个虚机同时运行在某台计算节点上,它们可能过多的使用磁盘I/O,可能会干扰系统性能。KVM支持从虚拟机发送到主机的请求磁盘I/O设置一个限制。这可以防止虚拟机过度利用共享资源并影响其他虚拟机的性能。
磁盘I/O限制在各种情况下都非常有用,例如,当属于不同客户的虚拟机在同一主机上运行时,或者为不同客户提供服务质量保证时。磁盘I/O限制也可以用于模拟速度较慢的磁盘。I/O限制可以独立地应用到和虚拟机连接的每个块设备,并支持对吞吐量和I/O操作的限制。
virsh blkiotune命令行允许admin用户设置并查看虚拟机磁盘IO参数。
查看current <blkio> parameters:
# virsh blkiotune virtual_machine
virsh blkdeviotune命令设置虚拟机的I/O限制:#virsh blkdeviotune virtual_machine device --parameter limit
连接到虚拟机的磁盘设备之一指定唯一的目标名称(<target dev ='name'/>)或源文件(<source file ='name'/>)。使用virsh domblklist命令获取磁盘设备名称的列表。
可选参数包括:
total-bytes-sec
每秒的总吞吐量限制,byte/s。
read-bytes-sec
每秒的读取吞吐量限制,byte/s。
write-bytes-sec
每秒的写吞吐量限制,byte/s。
Total-iops-sec
每秒的总I/O操作限制。
read-iops-sec
每秒的读取I/O操作限制。
write-iops-sec
每秒的写入I/O操作限制。
举例:要将virtual_machine上的vda限制为每秒1000个I / O操作和每秒50MB的吞吐量,请运行以下命令:
#virsh blkdeviotune virtual_machine vda --total-iops-sec 1000 --total-bytes-sec 52428800
参考资料
网友评论