KVMメモリーおよびCPUの割当ての構成

アクティブな仮想CPU (vCPU)の数と、各KVMインスタンスで使用可能なメモリーの量は構成可能です。このようなハードウェア構成の変更は、実行中のKVMに対してホット・プラグまたはホット・アンプラグで行うことができ、変更をKVMのXML構成ファイルに格納できます。一部の変更は、KVMホスト、ハイパーバイザの製造元、または元のKVM構成によって制限される場合があります。

コマンドラインを使用してKVMで使用するメモリーおよびCPUの割当てを構成する方法の詳細は、次のトピックを参照してください:

コマンドの使用方法: 仮想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オプションを指定する場合は、最大メモリー制限に対するライブ変更をサポートしていないハイパーバイザもある点に注意してください。