私は SPDK の実験 (これは DPDK を使用し、さらにヒュージページを使用します) を実行していますが、昨日は機能していました。私はそれらを共有環境で実行しています (あと 1 人か 2 人がこのマシンを他の目的で使用していると思います)。これを実行しようとすると、no free hugepages エラーが発生します。
/proc/meminfo の出力は次のとおりです。
HugePages_Total: 1024
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
マウントの出力:
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb,release_agent=/run/cgmanager/agents/cgm-release-agent.hugetlb)
前回の環境で機能していたものが機能しなくなりました。
umount -a -t hugetlbfs
mount -t hugetlbfs nodev /mnt/huge
次に、 /proc/meminfo の出力は次のとおりです。
HugePages_Total: 1024
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 1024
しかし、実行しようとすると:
EAL: No free hugepages reported in hugepages-1048576kB
EAL: No free hugepages reported in hugepages-2048kB
PANIC in rte_eal_init():
Cannot get hugepage information
これらのページが余剰であり、無料ではないのはなぜですか? それらを解放する方法はありますか?他のジョブが実行されているか、他のユーザーが使用している可能性があるため、システムを再起動したいと考えています。
編集:マシンを再起動し、より多くの hugepage を割り当てたところ、それらは解放されました。テストを実行するとクラッシュし、ヒュージページが再び失われました。
有効な答えのない関連する質問 (少なくとも私にとって):