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

 

IT

Posted by arkgame