3

8G の物理メモリ (Fedora20) があり、次のパラメーターをカーネルに渡すことで、起動時に 2 つの 1G hugepage を割り当てるようにカーネル パラメーターを構成しました。

default_hugepagesz=1G hugepagesz=1G hugepages=2

HugeTLBFS は自動マウントされます。

% mount | grep ^huge
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
%

再起動すると、すべて問題なく表示され、カーネルが必要なページを割り当てていることがわかります。

% dmesg | grep HugeTLB
HugeTLB registered 1 GB page size, pre-allocated 2 pages
% grep -E ^"(Mem|Huge)" /proc/meminfo
MemTotal:        8137732 kB
MemFree:         5359672 kB
MemAvailable:    5707656 kB
HugePages_Total:       2
HugePages_Free:        2
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:    1048576 kB
%

ご覧のとおり、空きメモリの量により、ヒュージページの数を増やすことができるはずですが、そうすることができません:

% echo 3 > /sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages
-bash: echo: write error: Invalid argument

また

% echo 3 > /proc/sys/vm/nr_hugepages
-bash: echo: write error: Invalid argument
%

ページ数を減らすことも失敗します。私は何を間違っていますか?

4

2 に答える 2

1

コマンドにはスーパーユーザー権限が必要なようです。または、システムで変更を永続的にしたい場合は、以下の手順を試すことができます。

最初に、従来の hugepage が機能するように hugetlbfs をマウントする必要があります。

mkdir /hugetlbfs
mount -t hugetlbfs none /hugetlbfs

注: IA-64 サポート - 4KiB、2MiB、および 4MiB ページ 注: x86_64 サポート - 4KiB、2MiB、4MiB、または 1GiB ページ

次に、要件に応じて、/etc/sysctl.confファイルを編集し、nr_hugepages で hugepage の数を指定します。

vm.nr_hughpages=2

コマンドsysctl -pを実行して、構成の変更を有効にします。注: ヒュージ ページ数の要件が大きく、使用可能な連続した空きブロックがない場合は、上記の変更後にシステムを再起動することをお勧めします。

hugepage の数が割り当てられているかどうかを確認するには、次を使用します。cat /proc/meminfo | grep Huge

HugePages_Total:    2
HugePages_Free:     2
HugePages_Rsvd:     0
Hugepagesize:       2048 kB
于 2014-10-16T03:05:02.950 に答える