RHEL9 仮想マシンのディスク I/O スロットリングを有効にする方法
環境
RHEL9.2
概要
複数の仮想マシンが同時に実行する場合は、過剰なディスク 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
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
3. virsh blkiotune コマンドを使用して、ブロックデバイスの I/O 制限を設定します。
# 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