无法在 Mac OS X 上分配内存错误 - java(xx,xx) malloc: *** mmap(size=XX)
unable to allocate memory error on mac os x - java(xx,xx) malloc: *** mmap(size=XX) failed (error code=12)
我相信这是一个普遍的问题,但如果它有帮助,我在具有16GB RAM的Mac OS X 10.8上运行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 下看到这些奇怪的低级错误时,我都会将其追溯到某种资源的缺乏,例如耗尽交换或过于频繁地重新映射虚拟内存。 应该有一个实用程序可以为您提供正在运行的程序中所有内存映射的转储。我会检查映射的数量是否过高。
相关文章:
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 大于65535的C++数组[size]引发不一致的溢出
- 为什么(-1)%vector::size()总是返回0
- 在for循环中使用auto vs decltype(vec.size())来处理字符串的向量
- 循环中的条件:为什么每次都调用strlen(),而vector.size()只调用一次
- 为什么这个 std::queue/指向结构的指针列表直到 List.Size() == 0 才释放内存?
- 在函数中使用 const int size 参数创建数组会在 Visual Studio 中抛出错误 C++:表达式的计
- vector.size() 在比较中意外工作
- C++ 将打印格式从整数 2255 更改为 $xx.xx
- vector.back() 和 vector[vector.size() - 1] 之间的区别?
- 返回 str vs. str.substr(0,str.size()) 在 leetcode 中给了我不同的输出
- 为什么 GCC 不能假设 std::vector::size 在这个循环中不会改变?
- 为什么"(!v.empty())"比"(v.size() >0)"好?
- 迭代器库中的 std::size() 不适用于传递给函数的 C 样式数组
- std::string.size() 未知行为
- 为什么gmp会在这里与"invalid next size"重新定位一起崩溃?
- 为什么我会"Invalid read of size 8"?(瓦尔格林德)
- 为什么这个.c文件只有一行"../xx/xx.c"?
- 从 std::string 到 std::array<char,size> 的 memcopy 额外数据是否是一种未定义的行为?
- 无法在 Mac OS X 上分配内存错误 - java(xx,xx) malloc: *** mmap(size=XX)