java - 无法在 mac os x 上分配内存错误 - java(xx,xx) malloc : *** mmap(size=XX) failed (error code=12)

标签 java c++ macos malloc mmap

我认为这是一个普遍问题,但如果它有帮助,我正在 Mac OS X 10.8 和 16GB RAM 上运行 LucidDB 数据库 (0.9.4)。数据库软件主要用Java编写,部分用C++编写。当我将缓冲池大小增加到 1GB 时,出现以下错误。

java(669,0xfc621000) malloc: * mmap(size=16777216) 失败(错误代码=12) 错误:无法分配区域 ** 在 malloc_error_break 中设置断点进行调试

我相信缓冲池使用共享内存,所以我将最大可用共享内存(kern.sysv.shmmax、kern.sysv.shmall)增加到 2GB。我还将 Java 堆大小(Xms、Xmx)增加到 1536MB。我被卡住了,有什么提示吗?

最佳答案

每当我在 Linux 下看到这些奇怪的低级错误时,我都会将其追溯到某种资源的缺乏,例如交换空间不足或过于频繁地重新映射虚拟内存。应该有一个实用程序可以为您提供正在运行的程序中所有内存映射的转储。我会检查映射的数量是否太多。

关于java - 无法在 mac os x 上分配内存错误 - java(xx,xx) malloc : *** mmap(size=XX) failed (error code=12),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13782840/

相关文章:

Linux 等效于 Mac OS X "open"命令

java - 在线程 "main"java.lang.OutOfMemoryError : Java heap space 中出现异常

java - 第三方库的代码签名问题

c++ - Stack OverFlow 与递归

c++ - 函数打印奇怪的值。 C++

java - 如何在 Windows 上开发 Apple Java Extensions?

macos - Cocoa 中的 CALayer 随机排序 (Mac OS)

java - 程序从数组中获取每第 5 个和第 7 个对象的唯一列表(List)

java - 滚动结束时无法摆脱浅灰色

c++ - 这个 valgrind 错误是什么意思?