KVMメモリーおよびCPUの割当ての構成
アクティブな仮想CPU (vCPU)の数と、各KVMインスタンスで使用可能なメモリーの量は構成可能です。このようなハードウェア構成の変更は、実行中のKVMに対してホット・プラグまたはホット・アンプラグで行うことができ、変更をKVMのXML構成ファイルに格納できます。一部の変更は、KVMホスト、ハイパーバイザの製造元、または元のKVM構成によって制限される場合があります。
コマンドの使用方法: 仮想CPU数の設定
vCPUを最適化すると、VMのリソース効率に影響を与える可能性があります。最適化する1つの方法は、KVMインスタンスに割り当てるvCPUの数を調整することです。vCPUのホット・プラグまたはホット・アンプラグは、実行中のKVMでvCPU数を構成するときに実施します。
ゲストKVMでアクティブなvCPUの数を変更するには、virsh setvcpusコマンドを使用します。デフォルトでは、virsh setvcpusは実行中のゲストKVMで動作します。停止したKVMのvCPUの数を変更するには、--config
オプションを追加します。
次に例を示します:
virsh setvcpus domain-name, id, or uuid count-value {--config | --live | --current} --guest
- setvcpu: ホット(アン)プラグ・メカニズムを使用して、個々のvCPUの状態を設定します。
ノート:
入力するcount valueは、KVMゲストに割り当てられたCPUの数を超えることはできません。また、vCPUの許容数値は、ホストの論理CPU、ハイパーバイザの製造元、KVMゲストOSなどの要因によって異なる場合があります。 - domain: KVM名、IDまたはUUIDを表す文字列値。
- count: vCPUの数を表す数値。
- --maximum: ゲストKVMの次回起動時にホット・プラグ可能なvCPUの最大数を制御します。このオプションは、
--config
オプションでのみ使用できます。 - --config: ゲストKVMの格納されているXML構成を変更し、ゲストの起動時に有効になります。
- --live: ゲストKVMは稼働している必要があり、変更は即時に行われ、vCPUがホット・プラグされます。
- --current: 現在のゲストKVMに影響します。
- --guest: 実行中のゲストのvCPU数を直接設定します。
ハイパーバイザで許可されている場合は、--config
オプションと--live
オプションを同時に使用できます。--config
、--live
または--current
を指定しない場合は、--live
オプションが使用されます。オプションを選択せず、ゲストKVMが実行されていない場合、コマンドは失敗します。さらに、オプションが指定されていない場合、--config
オプションも想定するかどうかはハイパーバイザによって決まり、変更が永続するようにXML構成を調整するかどうかもハイパーバイザによって決まります。
コマンドの使用方法: メモリーの割当て
KVMのパフォーマンスを向上させるには、KVMインスタンスに追加のホストRAMを割り当てることができます。割り当てられたメモリーの量を減らして、他のKVMやタスクのためにリソースを解放することもできます。メモリーのホット・プラグまたはホット・アンプラグは、実行中のKVMでメモリー・サイズを構成するときに実施します。
KVMで使用可能なメモリーを変更するには、virsh setmemコマンドを使用します。割当て可能な最大メモリーを変更する場合は、virsh setmaxmemコマンドを使用します。
KVMのメモリー割当てを変更するには、次のコマンドを実行します:
virsh setmem domain-name, id, or uuid --kilobytes size
size
はキビバイト単位でスケールされた整数として指定する必要があります。また、新しい値はKVMに指定した量を超えることはできません。64 MB未満の値にすると、ほとんどのKVMゲスト・オペレーティング・システムが動作しない可能性があります。最大メモリー値を大きくしても、アクティブなKVMには影響しません。新しい値が使用可能なメモリーより低い場合、メモリー使用量が縮小され、KVMがクラッシュする可能性があります。
KVMインスタンスにメモリーを割り当てるには、次のコマンド・オプションを使用します:
-
domain
KVM名、IDまたはUUIDを表す文字列値。
-
size
スケーリングされた整数として、新しいメモリー・サイズを表す数値。デフォルトの単位はKiBですが、その他の有効なメモリー単位から選択できます。
-
バイト: bまたはbytes
-
キロバイト: KB (103または1,000バイトのブロック)
-
キビバイト: kまたはKiB (210または1024バイトのブロック)
-
メガバイト: MB (106または1,000,000バイトのブロック)
-
メビバイト: MまたはMiB (220または1,048,576バイトのブロック)
-
ギガバイト: GB (109または1,000,000,000バイトのブロック)
-
ギビバイト: GまたはGiB (230または1,073,741,824バイトのブロック)
-
テラバイト: TB (1012または1,000,000,000,000バイトのブロック)
-
テビバイト: TまたはTiB (240または1,099,511,627,776バイトのブロック)
-
-
--config
ゲストKVMの格納されているXML構成を変更し、ゲストの起動時に有効になります。
-
--live
ゲストKVMは稼働している必要があり、変更は即座に実施され、メモリーがホット・プラグされます。
-
--current
現在のゲストKVMのメモリーに影響します。
KVMに割り当てることができる最大メモリーを設定するには、次のコマンドを実行します:
virsh setmaxmem domain-name_id_or_uuid size --current
size
は、キビバイト単位でスケーリングした整数として指定する必要があります。ただし、virsh setmemコマンドの場合と同じように、サポートされているメモリー単位も指定した場合を除きます。
virsh setmaxmemのその他すべてのオプションは、virsh setmemのものと同じですが、注意事項が1つあります。--live
オプションを指定する場合は、最大メモリー制限に対するライブ変更をサポートしていないハイパーバイザもある点に注意してください。