gpt4 book ai didi

linux - 使用 Hugepage 共享内存的用户应用程序。分配错误,为什么?

转载 作者:太空宇宙 更新时间:2023-11-04 10:13:13 33 4
gpt4 key购买 nike

尝试执行此示例:

https://github.com/torvalds/linux/blob/master/tools/testing/selftests/vm/hugepage-shm.c

但得到:

shmget: Cannot allocate memory



shmget(0x2, 268435456, IPC_CREAT|SHM_HUGETLB|0600) = -1 ENOMEM (Cannot allocate memory)

这是一台 8GB 内存和 Ubuntu 16.04,内核 4.4.0 ia64 的机器

free -m
total used free shared buff/cache available
Mem: 7170 1452 4604 77 1112 5361
Swap: 7623 0 7623


cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never

grep -i huge /proc/meminfo
AnonHugePages: 413696 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB

cat /proc/sys/vm/hugetlb_shm_group
0

cat /proc/sys/kernel/shmmax
18446744073692774399

cat /proc/sys/kernel/shmall
18446744073692774399

为什么它不起作用?

最佳答案

从meminfo,你没有可用的hugepage可以使用,您可以sysctl vm.hugepages=20为此启用 40M。

对于 x86_64 架构,默认启用 2Mi 大小,如果要使用 1Gi 大小,则必须添加一些参数作为内核启动参数。

引用: https://www.kernel.org/doc/Documentation/vm/hugetlbpage.txt

关于linux - 使用 Hugepage 共享内存的用户应用程序。分配错误,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47703079/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com