RHEL9 仮想マシンのディスク I/O スロットリングを有効にする方法
環境
RHEL9.2
概要
複数の仮想マシンが同時に実行する場合は、過剰なディスク I/O により、システムパフォーマンスに影
響が及ぶ可能性があります。KVM 仮想化のディスク I/O スロットリングでは、仮想マシンからホスト
マシンに送られるディスク I/O 要求に制限を設定する機能を利用できます。
複数の仮想マシンが同時に実行する場合は、過剰なディスク I/O により、システムパフォーマンスに影
響が及ぶ可能性があります。KVM 仮想化のディスク I/O スロットリングでは、仮想マシンからホスト
マシンに送られるディスク I/O 要求に制限を設定する機能を利用できます。
複数の仮想マシンが同時に実行する場合は、過剰なディスク I/O により、システムパフォーマンスに影 響が及ぶ可能性があります。KVM 仮想化のディスク I/O スロットリングでは、仮想マシンからホスト マシンに送られるディスク I/O 要求に制限を設定する機能を利用できます。
操作方法
1. virsh domblklist コマンドを使用して、指定された仮想マシン上のすべてのディスクデバイス
の名前をリスト表示します。
# virsh domblklist rollin-coal
Target Source------------------------------------------------
vda /var/lib/libvirt/images/rollin-coal.qcow2
sda
sdb /home/horridly-demanding-processes.iso
# virsh domblklist rollin-coal
Target Source------------------------------------------------
vda /var/lib/libvirt/images/rollin-coal.qcow2
sda
sdb /home/horridly-demanding-processes.iso
# virsh domblklist rollin-coal Target Source------------------------------------------------ vda /var/lib/libvirt/images/rollin-coal.qcow2 sda sdb /home/horridly-demanding-processes.iso
2. スロットルする仮想ディスクがマウントされているホストブロックデバイスを見つけます。
sdb 仮想ディスクをスロットリングする場合は、以下の出力では、ディスクが /dev/nvme0n1p3 パーティションにマウントされていることを示しています。
$ lsblk
NAME
zram0
nvme0n1
├─nvme0n1p1
├─nvme0n1p2
└─nvme0n1p3
MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
252:0 0 4G 0 disk [SWAP]
259:0 0 238.5G 0 disk
259:1 0 600M 0 part /boot/efi
259:2 0 1G 0 part /boot
259:3 0 236.9G 0 part
└─luks-a1123911-6f37-463c-b4eb-fxzy1ac12fea 253:0 0 236.9G 0 crypt /home
$ lsblk
NAME
zram0
nvme0n1
├─nvme0n1p1
├─nvme0n1p2
└─nvme0n1p3
MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
252:0 0 4G 0 disk [SWAP]
259:0 0 238.5G 0 disk
259:1 0 600M 0 part /boot/efi
259:2 0 1G 0 part /boot
259:3 0 236.9G 0 part
└─luks-a1123911-6f37-463c-b4eb-fxzy1ac12fea 253:0 0 236.9G 0 crypt /home
$ lsblk NAME zram0 nvme0n1 ├─nvme0n1p1 ├─nvme0n1p2 └─nvme0n1p3 MAJ:MIN RM SIZE RO TYPE MOUNTPOINT 252:0 0 4G 0 disk [SWAP] 259:0 0 238.5G 0 disk 259:1 0 600M 0 part /boot/efi 259:2 0 1G 0 part /boot 259:3 0 236.9G 0 part └─luks-a1123911-6f37-463c-b4eb-fxzy1ac12fea 253:0 0 236.9G 0 crypt /home
3. virsh blkiotune コマンドを使用して、ブロックデバイスの I/O 制限を設定します。
# virsh blkiotune VM-name --parameter device,limit
# virsh blkiotune VM-name --parameter device,limit
# virsh blkiotune VM-name --parameter device,limit
以下の例は、rollin-coal 仮想マシン上の sdb ディスクを毎秒 1000 の読み書き操作にスロット
リングし、毎秒 50 MB の読み書きスループットにスロットリングします。
# virsh blkiotune rollin-coal --device-read-iops-sec /dev/nvme0n1p3,1000 --device
write-iops-sec /dev/nvme0n1p3,1000 --device-write-bytes-sec
/dev/nvme0n1p3,52428800 --device-read-bytes-sec /dev/nvme0n1p3,52428800
# virsh blkiotune rollin-coal --device-read-iops-sec /dev/nvme0n1p3,1000 --device
write-iops-sec /dev/nvme0n1p3,1000 --device-write-bytes-sec
/dev/nvme0n1p3,52428800 --device-read-bytes-sec /dev/nvme0n1p3,52428800
# virsh blkiotune rollin-coal --device-read-iops-sec /dev/nvme0n1p3,1000 --device write-iops-sec /dev/nvme0n1p3,1000 --device-write-bytes-sec /dev/nvme0n1p3,52428800 --device-read-bytes-sec /dev/nvme0n1p3,52428800