28得票1回答
C++ 应用程序在分配超过某个限制的巨大页面时失败

概述 我有一个读取大量数据(约1T)的C++应用程序。我使用巨大页面(614400页,每页2M),这样可以工作,直到它达到128G。 为了测试,我创建了一个简单的C++应用程序,分配2M大小的块,直到无法再分配。 该应用程序使用以下方式运行: LD_PRELOAD=/usr/lib64...

27得票2回答
在EC2上解决Ubuntu 16.04的Redis警告:overcommit_memory和Transparent Huge Pages问题

在一台全新的Ubuntu 16.04 EC2实例上,警告信息会显示如下:WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue a...

27得票2回答
使用mmap和madvise进行巨大页面处理

我想在Linux机器正在使用的hugepages上分配内存。我看到有两种方法可以做到这一点,一种是使用mmap,另一种是使用madvise。 也就是说,在mmap调用中使用MAP_HUGETLB标志-base_ptr_ = mmap(NULL, memory_size_, PROT_READ...

18得票2回答
Java定期在futex上停顿,IO输出非常低。

目前我的应用程序定期在IO阻塞,并且输出非常低。我使用一些命令来追踪这个过程。 通过使用jstack,我发现该应用程序在FileOutputStream.writeBytes处挂起。 通过使用strace -f -c -p pid收集系统调用信息,我发现,在正常情况下,它具有Futex和W...

16得票1回答
建议Prolog处理器利用大页。

有没有支持使用大页面(每个内存页面2MB/4MB)而不是普通的4Kb内存页面的Prolog实现。 理想情况下,我希望能向解释器/编译器/运行时声明,对于某些特定应用程序,可以使用X个大页面作为各种堆栈/划痕内存的空间。 当然,并非所有应用程序都能受益于此,但我相信有不少应用程序能够从中受益...

12得票1回答
Linux(x86-64)中支持多个巨页面大小吗?

Linux系统在x86-64架构下是否支持多个大页大小(例如除4KB基本页大小外的2MB和1GB大小)? 如果是,是否有一种方法可以指定给定分配使用哪个大页大小? 换句话说,我的问题是,在执行mmap()时是否使用了"MAP_HUGETLB"标志,它将映射默认大小的巨大页面分配。是否有任何方式...

11得票1回答
为什么`change_protection`在将大量数据加载到内存时会占用CPU?

我们已经建立了一个内存数据库,使用单个Vec,需要大约100-150G的RAM来填充数据:let mut result = Vec::with_capacity(a_very_large_number); while let Ok(n) = reader.read(&mut buffe...

11得票5回答
如何从崩溃的应用程序中释放大页内存。

我有一个使用巨页的应用程序,由于某些错误,该应用程序突然崩溃了。 崩溃后,由于应用程序未能正确释放巨页,因此在sys文件系统中,空闲的巨页数量没有增加。 $ sudo cat /sys/kernel/mm/hugepages/hugepages-2048kB/free_hugepages ...

10得票3回答
如何在Ubuntu上默认启用透明巨页?

我该如何在Ubuntu上默认启用透明巨型页面?~$ uname -a Linux yoda 3.5.0-23-generic #35~precise1-Ubuntu SMP Fri Jan 25 17:13:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux ...

10得票1回答
无法使用-XX:+UseLargePages创建JVM

我有一个Java服务,当前使用14GB堆内存。我想尝试使用-XX:+UseLargePages选项,看看这对系统性能会有什么影响。我已经按照Oracle的说明配置了操作系统,使用适当的共享内存和页面值(也可以使用在线工具进行计算)。 一旦操作系统配置完毕,我可以看到它分配了预期数量的内存作为大...