问题标签 [huge-pages]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 发布大页面的正确方法?
假设我在/mnt/hugepages
; 然后是两个应用程序open()
,然后mmap()
是同一个大页面。
一个崩溃,另一个close()
然后munmap()
,我注意到hugepage仍然在里面分配/mnt/hugepages
,numastat -vm
也表明一个hugepage被占用了。然后,我手动删除了那个文件(/hugepage),numastat -vm
仍然显示一个hugepage被占用。然后,我杀死了剩余的应用程序。最后,numastat -vm
显示大页面不再被占用。
现在我的问题是在这种情况下释放大页面的正确方法是什么,而不会杀死以前对页面进行映射的所有应用程序?
我确实读过这篇文章。
但是我的帖子有所不同,我不想杀死所有应用程序,而是尽快释放巨页,我不想卸载。
谢谢!
c - 大页面的 ftruncate() 失败
我的应用程序尝试使用 2MB 巨页来ftruncate()
编辑mmap()
32-33KB,但它退出了。
然后我意识到ftruncate()
失败了:
它退出了:
我检查/mnt/huge2m
了我在哪里安装了我的hugepage fs。我确实看到该文件是在那里创建的,但大小为零。
然后我检查了我是否还有免费的 2MB 大页面:
我还有很多(92MB)。
然后,我按照这篇文章的建议检查了限制:
我的应用程序只打开 < 10 个文件。
我还认为我的用户打开了太多文件,达到了(硬)限制。但是,如果是这种情况,当我尝试访问open()
文件(大页面)时,我应该得到 -1 而不是 5(这是一个有效的 fd 描述符,并且不会在 中创建文件/mnt/huge2m
)。
strace
没有显示太多:
任何想法?
kubernetes - 为一个 pod 请求所有可用的大页面
如何请求 kubernetes 将节点上所有可用的大页面分配给我的应用程序 pod?
我的应用程序使用大页面。在部署到 kubernetes 之前,我已经为大页面配置了 kubernetes 节点,我知道通过指定 k8s 文档中提到的限制和请求,我的应用程序 pod 可以使用大页面。但这以某种方式将节点规格与我的应用程序配置紧密结合在一起。如果我的应用程序要在具有不同数量的大页面的不同节点上运行,我将不得不根据目标环境继续覆盖这些值。
但是根据 k8s 文档,“大页面请求必须等于限制。如果指定了限制,这是默认设置,但请求没有。”
有没有办法我可以以某种方式请求 k8s 将所有可用的大页面分配给我的应用程序 pod,或者只是让它保持动态,就像在未指定的内存或 cpu 请求/限制的情况下一样?
dpdk - 如何释放DPDK应用程序分配的hugepages?
我正在使用 DPDK-PROX 应用程序。每当我关闭该应用程序时,该应用程序分配的大页面都不会被释放。每次我都要重新启动系统。有什么解决办法吗?
我查看了以下问题,但我的问题没有解决。
如何从崩溃的应用程序中释放大页面
如何在 Linux 中真正释放大页面以供新进程使用?
发布大页面的正确方法?
这就是我在 /proc/meminfo 中看到的
sql-server - 我的数据库日志文件大小有问题
我有一个 MDF 大小为 10GB,LDF 大小为 47GB 的数据库。
我将恢复模式更改为简单和完整,但它没有改变。
我有一份完整备份(每天一次)和日志备份(每 15 分钟一次)的工作。
如何减小日志文件 LDF 文件的大小?
c - 免费的`mmap()-ed`私有大页面
我有以下代码:
我想知道在我的应用程序异常退出(例如崩溃)后如何释放大页面。
重新启动机器将释放所有大页面。但这对生产服务器有点破坏性。因此,我正在寻找一种不破坏现有流程的方法。
提前致谢!
java - LargePageHeapSizeThreshold 是否激活 JVM 中的 UseTransparentHugePage?
最近我注意到,在 Linux 发行版中,我们有大页面内存,可以设置为始终允许系统一直使用大页面,疯狂地让应用程序确定它们是否要使用大页面,或者从不。
此功能有时会降低应用程序性能。
在 JVM 中,我们有两个参数可以被激活来控制这个 OS 功能。
LargePageHeapSizeThreshold:如果此值小于MaxHeapSize JVM 使用大页面大小。
UseTransparentHugePages:它是一个布尔值,可以为真或假。
我的问题是将 LargePageHeapSizeThreshold 设置为小于 MaxHeapSize 的值会激活大页面,即使UseTransparentHugePages=false?
即使UseTransparentHugePages=false在 linux 中将大页面大小设置为始终会激活 JVM 以使用大页面?
linux - 致命错误:hugetlbfs.h:没有这样的文件或目录
我正在尝试使用gethugepagesize()
函数查找大页面大小的值。我发现hugetlbfs.h
必须包含该库。当我包含标题时,我得到了编译错误:
当我跳过包含库文件并调用该函数时,我得到链接器错误为
我浏览了帖子How to get the value of huge page size? . 我无法获得帖子工作的解决方案。
我错过了什么吗?
c - MAP_HUGETLB 未定义
我想在 Linux 上测试巨大的内存页面分配。只是为了袖手旁观另一种方法。但是我的测试根本无法编译。
产生:
理想情况下,我希望映射一个文件。但匿名记忆也可以。
输出hugeadm --pool-list
:
问题是,我如何分配由大页面支持的内存?
java - Java 堆外内存和大页面
在 Java 中分配堆外内存时(例如通过直接缓冲区或 JNI 本机代码),如果 JVM 使用 -XX:+UseLargePages ,分配的内存是否会由大页面支持?