8.2.3.3. 起動時またはランタイムにおけるゲスト用 1 GB Huge Page の有効化
Red Hat Enterprise Linux 7 システムは、2 MB および 1 GB の Huge Page をサポートしており、これは起動時または実行時に割り当てることができます。
手順8.2 起動時の 1 GB Huge Page の割り当て
- 起動時にさまざまなサイズの Huge Page を割り当てるには、次のコマンドを使用して Huge Page の数を指定します。この例では、4 つの 1 GB の Huge Page と 1024 の 2 MB の Huge Page を割り当てます。
'default_hugepagesz=1G hugepagesz=1G hugepages=4 hugepagesz=2M hugepages=1024'
このコマンドラインを変更して、起動時に割り当てる Huge Page の別の数を指定します。注記次の 2 つの手順も、起動時に 1 GB の Huge Page を初めて割り当てるときに完了する必要があります。 - 2 MB と 1 GB の Huge Page をホストにマウントします。
# mkdir /dev/hugepages1G # mount -t hugetlbfs -o pagesize=1G none /dev/hugepages1G # mkdir /dev/hugepages2M # mount -t hugetlbfs -o pagesize=2M none /dev/hugepages2M
- 仮想マシンの XML 設定の memoryBacking セクションに次の行を追加します。
<hugepages> <page size='1' unit='GiB'/> </hugepages>
- libvirtd を再起動して、ゲストで 1 GB の Huge Page を使用できるようにします。
# systemctl restart libvirtd
手順8.3 ランタイムの 1 GB Huge Page の割り当て
ランタイムに 1 GB の Huge Page を割り当てることもできます。ランタイムの割り当てにより、システム管理者はそれらのページを割り当てる NUMA ノードを選択できます。ただし、ランタイムのページ割り当ては、メモリーの断片化が原因で、起動時の割り当てよりも割り当てに失敗する可能性が高くなります。
- ランタイムでさまざまなサイズの Huge Page を割り当てるには、次のコマンドを使用して、Huge Page の数、それらを割り当てる NUMA ノード、および Huge Page サイズの値を置き換えます。
# echo 4 > /sys/devices/system/node/node1/hugepages/hugepages-1048576kB/nr_hugepages # echo 1024 > /sys/devices/system/node/node3/hugepages/hugepages-2048kB/nr_hugepages
このコマンドの例では、node1
から 4 つの 1 GB の Huge Page を割り当て、node3
から 1024 の 2 MB の Huge Page を割り当てます。これらの Huge Page 設定は、ホストシステムの空きメモリーの量に応じて、上記のコマンドでいつでも変更できます。注記次の 2 つの手順も、ランタイムで 1 GB の Huge Page を初めて割り当てるときに完了する必要があります。 - 2 MB と 1 GB の Huge Page をホストにマウントします。
# mkdir /dev/hugepages1G # mount -t hugetlbfs -o pagesize=1G none /dev/hugepages1G # mkdir /dev/hugepages2M # mount -t hugetlbfs -o pagesize=2M none /dev/hugepages2M
- 仮想マシンの XML 設定の memoryBacking セクションに次の行を追加します。
<hugepages> <page size='1' unit='GiB'/> </hugepages>
- libvirtd を再起動して、ゲストで 1 GB の Huge Page を使用できるようにします。
# systemctl restart libvirtd