我正在运行一个 SPDK 实验(它使用 DPDK,而 DPDK 又使用大页面),它昨天还在工作。我在共享环境中运行它们(我认为还有一两个人将这台机器用于其他东西)。现在,每当我尝试运行它时,都会出现 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
为什么这些页面是多余的而不是免费的?有什么办法可以释放他们吗?我想重新启动系统,因为可能有其他作业正在运行或有人在使用它。
编辑:重新启动机器,分配更多的大页面并且它们是免费的。执行测试,它崩溃了,现在大页面又丢失了。
没有有效答案的相关问题(至少对我而言):