jsp网站开发教学视频教程,wordpress登陆卡,视频网站推广,杭州网络问政平台本帖最后由 linux_love 于 2014-9-19 11:46 编辑多谢各位英雄支持#xff0c;这个问题困扰我N久了#xff0c;昨天终于让我给拿下了#xff0c;在Linux下有个CommitLimit 用于限制系统应用使用的内存资源#xff0c;#grep -i commit /proc/meminfoCommitLimit: 20389524…本帖最后由 linux_love 于 2014-9-19 11:46 编辑多谢各位英雄支持这个问题困扰我N久了昨天终于让我给拿下了在Linux下有个CommitLimit 用于限制系统应用使用的内存资源#grep -i commit /proc/meminfoCommitLimit: 20389524 kBCommitted_AS: 18541832 kB其中CommitLimit是一个内存分配上限Committed_AS是已经分配的内存大小。当系统中java程序提交的内存Committed_AS大于CommitLimit那么java就会报上面的错误。CommitLimit是有内核参数overcommit_ratio的控制的虚拟内存算法CommitLimit 物理内存 * overcommit_ratio(默认50即50%) swap大小而我系统中配置的是10更悲催的是overcommit_memory的值配置的是2overcommit_memory参数就是控制分配内存是否可以超过CommitLimit默认是0,即启发式的overcommitting handle,会尽量减少swap的使用,root可以分配比一般用户略多的内存。1表示允许超过CommitLimit,2表示不允许超过CommitLimit。所以当我把overcommit_ratio的值调为60的时候内存基本上就够用了这个问题就从根本上解决了当然我还是将overcommit_memory调为0了为了避免再次出现这个问题参考http://bkeep.blog.163.com/blog/static/12341429020123795827876/