您的位置:首页 > 其它

vm.overcommit_memory和vm.overcommit_ratio

2014-04-19 18:45 363 查看
有两台新配的服务器内存128G,但在空余内存还有20G,page cache 60G时jps启动不了,提示java heap space,c中调用malloc无法分配5G以上的内存,很奇怪。

倒是在网上有看到显卡没装风尚导致该问题的,最后换了一个带风扇的显卡就解决的:
http://ubuntuforums.org/showthread.php?p=11649751 后来同事问了运帷,原来时系统参数overcommit_memory和overcommit_ratio搞的鬼。
grep -i commit /proc/meminfo
看到CommitLimit和Committed_As参数。
CommitLimit是一个内存分配上限,CommitLimit = 物理内存 * overcommit_ratio(默认50,即50%) + swap大小
Committed_As是已经分配的内存大小。
overcommit_memory参数就是控制分配内存是否可以超过CommitLimit,默认是0,即启发式的overcommitting handle,会尽量减少swap的使用,root可以分配比一般用户略多的内存。1表示允许超过CommitLimit,2表示不允许超过CommitLimit。
原来这种怀疑系统参数有问题的诊断一般就是比较和正常机器的sysctl.conf配置,下次要先比较避免武断下结论。。

参考: http://bkeep.blog.163.com/blog/static/12341429020123795827876/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: