Couldnotrerveenoughspaceforobjectheap解决办法

更新时间:2023-06-13 11:22:37 阅读: 评论:0

Couldnotrerveenoughspaceforobjectheap解决办法
Centos6.4  Jdk1.6
1.在终端输⼊Java命令报错
雷声的声音怎么形容[root@localhost local]# java
Error occurred during initialization of VM
Could not rerve enough space for object heap单丁
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
2.是系统参数(overcommit_memory和overcommit_ratio)配置的问题
3.查看系统内存分配状态
[root@localhost local]# grep -i commit /proc/meminfo
CommitLimit:    15550904 kB
培训评估Committed_AS:  15098404 kB
  看到CommitLimit和Committed_As参数。
  CommitLimit是⼀个内存分配上限,CommitLimit = 物理内存 * overcommit_ratio(默认50,即50%) + swap⼤⼩
  Committed_As是已经分配的内存⼤⼩。
4.内核参数overcommit_memory
[root@localhost local]# cat /f | grep overcommit_memory
vm.overcommit_memory=2
  它是内存分配策略鹦鹉鱼好养吗
  可选值:0、1、2。
  0,表⽰内核将检查是否有⾜够的可⽤内存供应⽤进程使⽤;如果有⾜够的可⽤内存,内存申请允许;否则,内存申请失败,并把错误返回给应⽤进程。《活着》读书笔记
  1,表⽰内核允许分配所有的物理内存,⽽不管当前的内存状态如何。妙不可言是什么意思
  2,表⽰内核允许分配超过所有物理内存和交换空间总和的内存
5. 解决办法
  将vm.overcommit_memory 设为1即可
  有三种⽅式修改内核参数,但要有root权限:
1)编辑/f ,改vm.overcommit_memory=1,然后sysctl -p 使配置⽂件⽣效贵吉祥
2)sysctl vm.overcommit_memory=1
3)echo 1 > /proc/sys/vm/overcommit_memory
小孩子掉头发

本文发布于:2023-06-13 11:22:37,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1036469.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:内存   分配   内核   允许
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图