无法在Mac OS X上分配内存错误-java(xx,xx)malloc:*** mmap(size = XX)失败(错误代码= 12) [英] unable to allocate memory error on mac os x - java(xx,xx) malloc: *** mmap(size=XX) failed (error code=12)

查看:73
本文介绍了无法在Mac OS X上分配内存错误-java(xx,xx)malloc:*** mmap(size = XX)失败(错误代码= 12)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I believe it's a general issue but if it helps I'm running LucidDB database (0.9.4) on Mac OS X 10.8 with 16GB RAM. The database software is written mainly in Java with some parts in C++. When I increased buffer pool size to 1GB I got the following error.

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

java(669,0xfc621000) malloc: * mmap(size=16777216) failed (error code=12) error: can't allocate region ** set a breakpoint in malloc_error_break to debug

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

I believe that buffer pool uses shared memory so I increased max available shared memory (kern.sysv.shmmax, kern.sysv.shmall) to 2GB. I also increased java heap size (Xms, Xmx) to 1536MB. I'm stuck, any hints?

推荐答案

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

Whenever I have seen these strange low level error under linux I have traced it to a lack of resource of some kind such as running out of swap or remapping virtual memory too often. There should be a utility which gives you a dump of all the memory mappings in the running program. I would check whether the number of mappings is too high.

这篇关于无法在Mac OS X上分配内存错误-java(xx,xx)malloc:*** mmap(size = XX)失败(错误代码= 12)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆