Red Hat Training

A Red Hat training course is available for RHEL 8

16.3. 仮想マシンのメモリーの設定

仮想マシンのパフォーマンスを改善するために、追加のホスト RAM を仮想マシンに割り当てることができます。同様に、仮想マシンに割り当てるメモリー量を減らして、ホストメモリーを他の仮想マシンやタスクに割り当てることができます。

これらのアクションを実行するには、Web コンソール または コマンドラインインターフェイス を使用します。

16.3.1. Web コンソールで仮想マシンのメモリーの追加と削除

仮想マシンのパフォーマンスを向上させるか、仮想マシンが使用するホストリソースを解放するために、Web コンソールを使用して、仮想マシンに割り当てられたメモリーの量を調整できます。

前提条件

  • ゲスト OS がメモリーバルーンドライバーを実行している。これを確認するには、以下を実行します。

    1. 仮想マシンの設定に memballoon デバイスが含まれていることを確認します。

      # virsh dumpxml testguest | grep memballoon
      <memballoon model='virtio'>
          </memballoon>

      このコマンドで出力が表示され、モデルが none に設定されていない場合は、memballoon デバイスが存在します。

    2. バルーンドライバーがゲスト OS で実行していることを確認します。

      • Windows ゲストでは、ドライバーは virtio-win ドライバーパッケージの一部としてインストールされます。手順は、Installing KVM paravirtualized drivers for Windows virtual machines を参照してください。
      • Linux ゲストでは、通常、このドライバーはデフォルトで含まれており、memballoon デバイスがあれば、アクティベートされます。
  • Web コンソールの仮想マシンプラグインが システムにインストールされている

手順

  1. 任意: 最大メモリーと、仮想マシンに現在使用されている最大メモリーの情報を取得します。これは、変更のベースラインとしても、検証のためにも機能します。

    # virsh dominfo testguest
    Max memory:     2097152 KiB
    Used memory:    2097152 KiB
  2. 仮想マシン インターフェイスで、情報を表示する仮想マシンを選択します。

    新しいページが開き、選択した仮想マシンに関する基本情報を含む Overview セクションと、仮想マシンのグラフィカルインターフェイスにアクセスするための Console セクションが表示されます。

  3. 概要ペインで、Memory 行の横にある 編集 をクリックします。

    メモリー調整 ダイアログが表示されます。

    仮想マシンのメモリー調整ダイアログボックスを表示するイメージ。
  4. 選択した仮想マシンの仮想 CPU を設定します。

    • 最大割り当て: 仮想マシンがそのプロセスに使用できるホストメモリーの最大量を設定します。VM の作成時に最大メモリーを指定することも、後で増やすこともできます。メモリーは、MiB または GiB の倍数で指定できます。

      仮想マシンをシャットダウンしてからでないと、最大メモリー割り当てを調整できません。

    • 現在の割り当て - 仮想マシンに割り当てる実際のメモリー量を設定します。この値は、最大割り当てより小さい値にすることができますが、上限を超えることはできません。値を調整して、仮想マシンで利用可能なメモリーをプロセス用に調整できます。メモリーは、MiB または GiB の倍数で指定できます。

      この値を指定しない場合、デフォルトの割り当ては最大割り当て の値になります。

  5. Save をクリックします。

    仮想マシンのメモリー割り当てが調整されます。

関連情報

16.3.2. コマンドラインインターフェイスで仮想マシンのメモリーの追加と削除

仮想マシンのパフォーマンスを改善したり、使用しているホストリソースを解放したりするために、CLI を使用して仮想マシンに割り当てられたメモリーの量を調整できます。

前提条件

  • ゲスト OS がメモリーバルーンドライバーを実行している。これを確認するには、以下を実行します。

    1. 仮想マシンの設定に memballoon デバイスが含まれていることを確認します。

      # virsh dumpxml testguest | grep memballoon
      <memballoon model='virtio'>
          </memballoon>

      このコマンドで出力が表示され、モデルが none に設定されていない場合は、memballoon デバイスが存在します。

    2. ballon ドライバーがゲスト OS で実行されていることを確認します。

      • Windows ゲストでは、ドライバーは virtio-win ドライバーパッケージの一部としてインストールされます。手順は、Installing KVM paravirtualized drivers for Windows virtual machines を参照してください。
      • Linux ゲストでは、通常、このドライバーはデフォルトで含まれており、memballoon デバイスがあれば、アクティベートされます。

手順

  1. 任意: 最大メモリーと、仮想マシンに現在使用されている最大メモリーの情報を取得します。これは、変更のベースラインとしても、検証のためにも機能します。

    # virsh dominfo testguest
    Max memory:     2097152 KiB
    Used memory:    2097152 KiB
  2. 仮想マシンに割り当てる最大メモリーを調整します。この値を増やすと、仮想マシンのパフォーマンスが低下する可能性が向上し、値を減らすことで、仮想マシンがホスト上にあるパフォーマンスフットプリントが低減します。この変更は、停止している仮想マシンでのみ実行できるため、実行中の仮想マシンを調整するには再起動する必要があります。

    たとえば、仮想マシン testguest が使用可能な最大メモリーを 4096 MiB に変更するには、次のコマンドを実行します。

    # virt-xml testguest --edit --memory memory=4096,currentMemory=4096
    Domain 'testguest' defined successfully.
    Changes will take effect after the domain is fully powered off.

    実行中の仮想マシンの最大メモリーを増やすには、仮想マシンにメモリーデバイスを割り当てます。これは、メモリーのホットプラグとも呼ばれます。詳細は、デバイスの仮想マシンへの接続 を参照してください。

    警告

    実行中の仮想マシン (メモリーのホットアンプラグとも呼ばれる) から、メモリーデバイスを削除することはサポートされておらず、Red Hat では推奨していません。

  3. 任意: 仮想マシンが現在使用しているメモリーを最大割り当てまで調整することもできます。これにより、仮想マシンの最大割り当てを変更せずに、仮想マシンが次回の再起動までホスト上にあるメモリー負荷が調整されます。

    # virsh setmem testguest --current 2048

検証

  1. 仮想マシンが使用するメモリーが更新されていることを確認します。

    # virsh dominfo testguest
    Max memory:     4194304 KiB
    Used memory:    2097152 KiB
  2. (必要に応じて) 現在の仮想マシンメモリーを調整すると、仮想マシンのメモリーバルーンの統計を取得して、そのメモリー使用量をどの程度効果的に調整するかを評価できます。

     # virsh domstats --balloon testguest
    Domain: 'testguest'
      balloon.current=365624
      balloon.maximum=4194304
      balloon.swap_in=0
      balloon.swap_out=0
      balloon.major_fault=306
      balloon.minor_fault=156117
      balloon.unused=3834448
      balloon.available=4035008
      balloon.usable=3746340
      balloon.last-update=1587971682
      balloon.disk_caches=75444
      balloon.hugetlb_pgalloc=0
      balloon.hugetlb_pgfail=0
      balloon.rss=1005456

16.3.3. 関連情報