Red Hat Training
A Red Hat training course is available for RHEL 8
14.3. 仮想マシンのメモリーの設定
仮想マシンのパフォーマンスを改善するために、追加のホスト RAM を仮想マシンに割り当てることができます。同様に、仮想マシンに割り当てるメモリー量を減らして、ホストメモリーを他の仮想マシンやタスクに割り当てることができます。
これらのアクションを実行するには、Web コンソール または コマンドラインインターフェイス を使用します。
14.3.1. Web コンソールで仮想マシンのメモリーの追加と削除
仮想マシンのパフォーマンスを向上させるか、または仮想マシンが使用するホストリソースを解放するために、Web コンソールを使用して、仮想マシンに割り当てられたメモリーの量を調整できます。
前提条件
ゲスト OS がメモリーバルーンドライバーを実行している。これを確認するには、以下を実行します。
仮想マシンの設定に
memballoon
デバイスが含まれていることを確認します。# virsh dumpxml testguest | grep memballoon <memballoon model='virtio'> </memballoon>
このコマンドで出力が表示され、モデルが
none
に設定されていない場合は、memballoon
デバイスが存在します。バルーンドライバーがゲスト OS で実行していることを確認します。
-
Windows ゲストでは、ドライバーは
virtio-win
ドライバーパッケージの一部としてインストールされます。手順は、Installing paravirtualized KVM drivers for Windows virtual machines を参照してください。 -
Linux ゲストでは、通常、このドライバーはデフォルトで含まれており、
memballoon
デバイスがあれば、アクティベートされます。
-
Windows ゲストでは、ドライバーは
- Web コンソールの VM プラグインが システムにインストールされている。
手順
任意: 最大メモリーと、仮想マシンに現在使用されている最大メモリーの情報を取得します。これは、変更のベースラインとしても、検証のためにも機能します。
# virsh dominfo testguest Max memory: 2097152 KiB Used memory: 2097152 KiB
仮想マシン インターフェイスで、情報を表示する仮想マシンを選択します。
新しいページが開き、選択した VM に関する基本情報を含む概要セクションと、VM のグラフィカルインターフェイスにアクセスするためのコンソールセクションが表示されます。
概要ペインで、
Memory
行の横にある 編集 をクリックします。メモリー調整
ダイアログが表示されます。選択した仮想マシンの仮想 CPU を設定します。
最大割り当て: 仮想マシンがそのプロセスに使用できるホストメモリーの最大量を設定します。VM の作成時に最大メモリーを指定することも、後で増やすこともできます。メモリーは、MiB または GiB の倍数で指定できます。
仮想マシンをシャットダウンしてからでないと、最大メモリー割り当てを調整できません。
現在の割り当て - 仮想マシンに割り当てる実際のメモリー量を設定します。この値は、最大割り当てより小さい値にすることができますが、上限を超えることはできません。値を調整して、仮想マシンで利用可能なメモリーをプロセス用に調整できます。メモリーは、MiB または GiB の倍数で指定できます。
この値を指定しない場合、デフォルトの割り当ては最大割り当て の値になります。
Save をクリックします。
仮想マシンのメモリー割り当てが調整されます。
14.3.2. コマンドラインインターフェイスで仮想マシンのメモリーの追加と削除
仮想マシンのパフォーマンスを改善したり、使用しているホストリソースを解放したりするために、CLI を使用して仮想マシンに割り当てられたメモリーの量を調整できます。
前提条件
ゲスト OS がメモリーバルーンドライバーを実行している。これを確認するには、以下を実行します。
仮想マシンの設定に
memballoon
デバイスが含まれていることを確認します。# virsh dumpxml testguest | grep memballoon <memballoon model='virtio'> </memballoon>
このコマンドで出力が表示され、モデルが
none
に設定されていない場合は、memballoon
デバイスが存在します。ballon ドライバーがゲスト OS で実行されていることを確認します。
-
Windows ゲストでは、ドライバーは
virtio-win
ドライバーパッケージの一部としてインストールされます。手順は、Installing paravirtualized KVM drivers for Windows virtual machines を参照してください。 -
Linux ゲストでは、通常、このドライバーはデフォルトで含まれており、
memballoon
デバイスがあれば、アクティベートされます。
-
Windows ゲストでは、ドライバーは
手順
任意: 最大メモリーと、仮想マシンに現在使用されている最大メモリーの情報を取得します。これは、変更のベースラインとしても、検証のためにも機能します。
# virsh dominfo testguest Max memory: 2097152 KiB Used memory: 2097152 KiB
仮想マシンに割り当てる最大メモリーを調整します。この値を増やすと、仮想マシンのパフォーマンスが低下する可能性が向上し、値を減らすことで、仮想マシンがホスト上にあるパフォーマンスフットプリントが低減します。この変更は、停止している仮想マシンでのみ実行できるため、実行中の仮想マシンを調整するには再起動する必要があります。
たとえば、仮想マシン 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 では推奨していません。
任意: 仮想マシンが現在使用しているメモリーを最大割り当てまで調整することもできます。これにより、仮想マシンの最大割り当てを変更せずに、仮想マシンが次回の再起動までホスト上にあるメモリー負荷が調整されます。
# virsh setmem testguest --current 2048
検証
仮想マシンが使用するメモリーが更新されていることを確認します。
# virsh dominfo testguest Max memory: 4194304 KiB Used memory: 2097152 KiB
(必要に応じて) 現在の仮想マシンメモリーを調整すると、仮想マシンのメモリーバルーンの統計を取得して、そのメモリー使用量をどの程度効果的に調整するかを評価できます。
# 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