15.6.2. 仮想マシンのディスク I/O スロットリング
複数の仮想マシンが同時に実行する場合は、過剰なディスク I/O により、システムパフォーマンスに影響が及ぶ可能性があります。KVM 仮想化のディスク I/O スロットリングでは、仮想マシンからホストマシンに送られるディスク I/O 要求に制限を設定する機能を利用できます。これにより、仮想マシンが共有リソースを過剰に使用し、その他の仮想マシンのパフォーマンスに影響を及ぼすことを防ぐことができます。
ディスク I/O スロットリングを有効にするには、仮想マシンに割り当てられた各ブロックデバイスからホストマシンに送られるディスク I/O 要求に制限を設定します。
手順
virsh domblklistコマンドを使用して、指定された仮想マシン上のすべてのディスクデバイスの名前をリスト表示します。# virsh domblklist rollin-coal Target Source ------------------------------------------------ vda /var/lib/libvirt/images/rollin-coal.qcow2 sda - sdb /home/horridly-demanding-processes.isoスロットルする仮想ディスクがマウントされているホストブロックデバイスを見つけます。
たとえば、前の手順の
sdb仮想ディスクをスロットリングする場合は、以下の出力では、ディスクが/dev/nvme0n1p3パーティションにマウントされていることを示しています。$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT zram0 252:0 0 4G 0 disk [SWAP] nvme0n1 259:0 0 238.5G 0 disk ├─nvme0n1p1 259:1 0 600M 0 part /boot/efi ├─nvme0n1p2 259:2 0 1G 0 part /boot └─nvme0n1p3 259:3 0 236.9G 0 part └─luks-a1123911-6f37-463c-b4eb-fxzy1ac12fea 253:0 0 236.9G 0 crypt /homevirsh 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
関連情報
- ディスク I/O スロットリングは、異なる顧客に属する仮想マシンが同じホストで実行されている場合や、異なる仮想マシンに QoS 保証が提供されている場合など、さまざまな状況で役立ちます。ディスク I/O スロットリングは、低速なディスクをシミュレートするために使用することもできます。
- I/O スロットリングは、仮想マシンに割り当てられた各ブロックデバイスに個別に適用でき、スループットおよび I/O 操作の制限に対応します。
-
Red Hat は、
virsh blkdeviotuneコマンドを使用した仮想マシンでの I/O スロットリングの設定はサポートしていません。RHEL 9 を仮想マシンホストとして使用する際にサポートされていない機能の詳細は、RHEL 9 仮想化におけるサポートされていない機能 を参照してください。