分享

java虚拟机jvm内存设置

ld512870 发表于 2015-3-27 21:13:48 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 4 34625
因为现在频繁使用java虚拟机。需要对jvm进行参数调整以提高性能。但是发现网上资料比较老。有没有比较新的资料。jvm内存调整方面的。还有就是我设置了堆内存最大最小都是4G。可是我通过top命令看java虚拟机占用的内存在一直的增大。都到了6G多了。我想知道怎么设置jvm能够使用的最大内存?要不然一直增大,早晚会内存溢出啊。应该怎么设置呢?还有就是GC垃圾回收。现在那种GC比较好?

已有(4)人评论

跳转到指定楼层
韩克拉玛寒 发表于 2015-3-27 23:30:46
一方面,Java的JVM最小值,不是你设置的越大越好,这就是相当月初始化大小就是4G大小,之后在跑商一些程序,内存就会一直持续加大,JVM设置最大值,是根据机器的位数来看的。64位机器不存在限制。32位机器存在限制。
另一方面,就是优化你的Java程序的连接池方面的性能着手。
以上仅供参考。
回复

使用道具 举报

rsgg03 发表于 2015-3-28 00:04:37
4种GC,根据自己的选择

1、第一种为单线程GC,也是默认的GC,该GC适用于单CPU机器。
2、第二种为Throughput GC,是多线程的GC,适用于多CPU,使用大量线程的程序。第二种GC与第一种GC相似,不同在于GC在收集Young区是多线程的,但在Old区和第一种一样,仍然采用单线程。-XX:+UseParallelGC参数启动该GC。
3、第三种为Concurrent Low Pause GC,类似于第一种,适用于多CPU,并要求缩短因GC造成程序停滞的时间。这种GC可以在Old区的回收同时,运行应用程序。-XX:+UseConcMarkSweepGC参数启动该GC。
4、第四种为Incremental Low Pause GC,适用于要求缩短因GC造成程序停滞的时间。这种GC可以在Young区回收的同时,回收一部分Old区对象。-Xincgc参数启动该GC。

回复

使用道具 举报

rsgg03 发表于 2015-3-28 00:08:25
如果运行的是hadoop对其设置即可,没有生效可能设置的不对。jvm一般改变的不大。
hadoop jvm参考:

Hadoop作业JVM堆优化汇总及JVM复用

回复

使用道具 举报

lovelan 发表于 2015-3-28 09:58:13
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条