20.44. Disk I/O Throttling

The virsh blkdeviotune command sets disk I/O throttling for a specified guest virtual machine. This can prevent a guest virtual machine from over utilizing shared resources and thus impacting the performance of other guest virtual machines. The following format should be used:
#virsh blkdeviotune domain <device> [[--config] [--live] | [--current]] [[total-bytes-sec] | [read-bytes-sec] [write-bytes-sec]] [[total-iops-sec] [read-iops-sec] [write-iops-sec]]
The only required parameter is the domain name of the guest virtual machine. To list the domain name, run the virsh domblklist command. The --config, --live, and --current arguments function the same as in Section 20.43, “Setting Schedule Parameters”. If no limit is specified, it will query current I/O limits setting. Otherwise, alter the limits with the following flags:
  • --total-bytes-sec - specifies total throughput limit in bytes per second.
  • --read-bytes-sec - specifies read throughput limit in bytes per second.
  • --write-bytes-sec - specifies write throughput limit in bytes per second.
  • --total-iops-sec - specifies total I/O operations limit per second.
  • --read-iops-sec - specifies read I/O operations limit per second.
  • --write-iops-sec - specifies write I/O operations limit per second.
For more information, see the blkdeviotune section of the virsh man page. For an example domain XML see Figure 23.27, “Devices - Hard drives, floppy disks, CD-ROMs Example”.