微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

mmap 错误:无法分配内存如何以管理员身份分配足够的默认大小的大页面?

如何解决mmap 错误:无法分配内存如何以管理员身份分配足够的默认大小的大页面?

我正在编译和运行 this 程序,但收到“mmap 错误:无法分配内存”。 最上面的评论写着

/*
 * Example of using hugepage memory in a user application using the mmap
 * system call with MAP_HUGETLB flag.  Before running this program make
 * sure the administrator has allocated enough default sized huge pages
 * to cover the 256 MB allocation.
 *
 * For ia64 architecture,Linux kernel reserves Region number 4 for hugepages.
 * That means the addresses starting with 0x800000... will need to be
 * specified.  Specifying a fixed address is not required on ppc64,i386
 * or x86_64.
 */

我想检查 if the administrator has allocated enough default sized huge pages to cover the 256 MB allocation 但我是系统管理员。我应该怎么办?我在 ubuntu 20.04 x86_64 机器上。 (附带问题:mmap 是否使用堆区域?)

ADD :请看我的评论(我添加一个引导命令参数并且代码有效。我在 grub 菜单中临时添加了引导参数。)但我希望我可以添加一个初始化脚本,以便每次计算机都生效靴子。

解决方法

似乎有两种方法。

  1. 在 /etc/sysctrl.conf 中添加 vm.nr_hugepages = 16 并重启。
    我已经检查过这个工作。

  2. (正如 Nate Eldredge 评论的那样)在 /etc/default/grub 的 GRUB_CMDLINE_LINUX="" 行(引号内)中添加 'hugepages=16' 并执行 update-grub。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。