Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

8.2.3.2. 静的 Huge Page の設定

場合によっては、Huge Page をより細かく制御することが望ましい場合があります。ゲストで静的 Huge Page を使用するには、virsh edit を使用してゲスト XML 設定に以下を追加します。
<memoryBacking>
        <hugepages/>
</memoryBacking>
これは、デフォルトのページサイズを使用する代わりに、Huge Page を使用してゲストにメモリーを割り当てるようにホストに指示します。
次のコマンドを実行して、現在の Huge Page の値を表示します。
cat /proc/sys/vm/nr_hugepages

手順8.1 Huge Page の設定

次の手順の例は、Huge Page を設定するコマンドを示しています。
  1. 現在の Huge Page の値を表示します。
    # cat /proc/meminfo | grep Huge
    AnonHugePages:      2048 kB
    HugePages_Total:       0
    HugePages_Free:        0
    HugePages_Rsvd:        0
    HugePages_Surp:        0
    Hugepagesize:       2048 kB
  2. Huge Page は 2 MB 単位で設定されます。Huge Page の数を 25000 に設定するには、次のコマンドを使用します。
    echo 25000 > /proc/sys/vm/nr_hugepages
    注記
    設定を永続的にするには、ゲストマシンの /etc/sysctl.conf ファイルに次の行を追加します。X は意図した Huge Page の数です。
    # echo 'vm.nr_hugepages = X' >> /etc/sysctl.conf
    # sysctl -p
    
    その後、ゲストの /etc/grub2.cfg ファイルの /kernel 行の末尾に transparent_hugepage=never を追加します。
  3. Huge Page をマウントします。
    # mount -t hugetlbfs hugetlbfs /dev/hugepages
  4. 仮想マシンの XML 設定の memoryBacking セクションに次の行を追加します。
    <hugepages>
      <page size='1' unit='GiB'/>
    </hugepages>
    
  5. libvirtd を再起動します。
    # systemctl restart libvirtd
    • 仮想マシンを起動します。
      # virsh start virtual_machine
    • 仮想マシンがすでに実行中の場合は再起動します。
      # virsh reset virtual_machine
  6. /proc/meminfo の変更を確認します。
    # cat /proc/meminfo | grep Huge
    AnonHugePages:         0 kB
    HugePages_Total:   25000
    HugePages_Free:    23425
    HugePages_Rsvd:        0
    HugePages_Surp:        0
    Hugepagesize:       2048 kB
Huge Page は、ホストだけでなくゲストにもメリットをもたらしますが、Huge Page の合計値は、ホストで利用可能な値よりも小さくなければなりません。