Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

7.4. ブロック I/O チューニング技術

このセクションでは、仮想化環境でブロック I/O のパフォーマンスをチューニングするためのその他の手法について説明します。

7.4.1. ディスク I/O スロットリング

複数の仮想マシンが同時に実行する場合は、過剰なディスク I/O により、システムパフォーマンスに影響が及ぶ可能性があります。KVM のディスク I/O スロットリングでは、仮想マシンからホストマシンに送られるディスク I/O 要求に制限を設定する機能を利用できます。これにより、仮想マシンが共有リソースを過剰に使用して、他の仮想マシンのパフォーマンスに影響を与えるのを防ぐことができます。
ディスク I/O スロットリングは、異なる顧客に属するゲスト仮想マシンが同じホストで実行されている場合や、異なるゲストに QoS 保証が提供されている場合など、さまざまな状況で役立ちます。ディスク I/O スロットリングは、低速なディスクをシミュレートするために使用することもできます。
I/O スロットリングは、ゲストに割り当てられた各ブロックデバイスに個別に適用でき、スループットおよび I/O 操作の制限に対応します。virsh blkdeviotune コマンドを使用して仮想マシンの I/O 制限を設定します。
# virsh blkdeviotune virtual_machine device --parameter limit
Device は、仮想マシンに接続されているディスクデバイスのいずれかに対して、一意のターゲット名 (<target dev='name'/>) またはソースファイル (<source file='name'/>) を指定します。ディスクデバイス名のリストについては、virsh domblklist コマンドを使用してください。
オプションのパラメーターは次のとおりです。
total-bytes-sec
総スループットの上限 (バイト毎秒単位)。
read-bytes-sec
読み取りスループットの上限 (バイト毎秒単位)。
write-bytes-sec
書き込みスループットの上限 (バイト毎秒単位)。
total-iops-sec
1 秒あたりの I/O 操作の制限合計。
read-iops-sec
1 秒あたりの読み取り I/O 操作数の制限。
write-iops-sec
1 秒あたりの書き込み I/O 操作数の制限。
たとえば、virtual_machinevda を 1 秒あたり 1000 の I/O 操作と、1 秒スループットあたり 50 MB にスロットリングするには、次のコマンドを実行します。
# virsh blkdeviotune virtual_machine vda --total-iops-sec 1000 --total-bytes-sec 52428800