メモリーおよびCPU割当ての操作

アクティブな仮想CPU (vCPU)の数と、特定のVMで使用可能なメモリーの量は構成可能です。このような構成の変更は、ホット・プラグまたはホット・アンプラグで実行中のVMに実施することも、VMのXML構成ファイルに格納することもできます。変更は、VMホスト、ハイパーバイザまたは元のVMの説明で制限できます。

仮想CPU数の構成

vCPUを最適化すると、VMのリソース効率に影響を与える可能性があります。最適化の1つの方法は、VMに割り当てるvCPUの数を調整することです。vCPUのホット・プラグまたはホット・アンプラグは、実行中のVMでvCPU数を構成するときに実施します。

ゲストVMでアクティブなvCPUの数を変更するには、virsh setvcpusコマンドを使用します。デフォルトでは、virsh setvcpusは実行中のゲストVMで動作します。停止したVMのvCPUの数を変更するには、--configオプションを追加します。

たとえば、次のコマンドを実行して、実行中のVMでvCPUの数を設定します。

virsh setvcpus domain-name, id, or uuid count-value --live

このカウント値は、ゲストVMに割り当てられたCPUの数を超えることができないことに注意してください。また、このカウント値は、ホスト、ハイパーバイザ、またはゲストVMの元の説明によって制限されることもあります。

次のコマンド・オプションが指定できます。

  • domain

    VM名、IDまたはUUIDを表す文字列値。

  • count

    vCPUの数を表す数値。

  • --maximum

    ゲストVMの次回ブート時にホット・プラグ可能なvCPUの最大数を制御します。このオプションは、--configオプションでのみ使用できます。

  • --config

    ゲストVMの格納されているXML構成を変更し、ゲストの起動時に有効にします。

  • --live

    ゲストVMは稼働している必要があり、変更は即座に実施されます(vCPUがホット・プラグされます)。

  • --current

    現在のゲストVMに影響を与えます。

  • --guest

    現在のゲストVMのCPU状態を変更します。

  • --hotpluggable

    vCPUをホット・アンプラグできるように構成します。

ハイパーバイザで許可されている場合は、--configオプションと--liveオプションを同時に使用できます。--config--liveまたは--currentを指定しない場合は、--liveオプションが使用されます。オプションを選択せずにゲストVMが実行されていない場合、コマンドは失敗します。さらに、オプションが指定されていない場合、--configオプションも想定するかどうかはハイパーバイザによって決まり、変更が永続するようにXML構成を調整するかどうかもハイパーバイザによって決まります。

メモリー割当ての構成

VMのパフォーマンスが向上するように、VMに追加のホストRAMを割り当てることができます。割り当てられたメモリーの量を減らして、他のVMやタスクのためにリソースを解放することもできます。メモリーのホット・プラグまたはホット・アンプラグは、実行中のVMでメモリー・サイズを構成するときに実施します。

virsh setmemコマンドは、VMに使用可能なメモリーを変更する場合に使用します。割当て可能な最大メモリーを変更する場合は、virsh setmaxmemコマンドを使用します。

VMのメモリー割当てを変更するには、次のコマンドを実行します。

virsh setmem domain-name, id, or uuid --kilobytes size

sizeはキビバイト単位でスケールされた整数として指定する必要があります。また、新しい値はVMに指定した量を超えることはできません。ほとんどのVMオペレーティング・システムでは、64MB未満の値は動作しない可能性があります。最大メモリー値を大きくしても、アクティブなVMには影響しません。新しい値が使用可能なメモリーよりも小さい場合は、メモリーが縮小されてVMがクラッシュする可能性があります。

次のコマンド・オプションが指定できます。

  • domain

    VM名、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

    ゲストVMの格納されているXML構成を変更し、ゲストの起動時に有効にします。

  • --live

    ゲストVMは稼働している必要があり、変更は即座に実施されます(メモリーがホット・プラグされます)。

  • --current

    現在のゲストVMのメモリーに影響を与えます。

VMに割り当てることができる最大メモリーを設定するには、次のコマンドを実行します。

virsh setmaxmem domain-name_id_or_uuid size --current

sizeは、キビバイト単位でスケーリングした整数として指定する必要があります。ただし、virsh setmemコマンドの場合と同じように、サポートされているメモリー単位も指定した場合を除きます。

virsh setmaxmemのその他すべてのオプションは、virsh setmemのものと同じですが、注意事項が1つあります。--liveオプションを指定する場合、すべてのハイパーバイザが最大メモリー制限のライブ変更を許可しているわけではないことに注意してください。