先回顾一下 JVM 的结构
堆内部的分代
JVM 参数既多且杂,如何提纲挈领,避免挂一漏万呢?个人的想法是掌握原理,了解常用的参数就好了,以度量来驱动适用于你的应用程序的参数设置。
目的: 尽量减少停顿时间,释放出更多可用内存
Java 命令行选项一般分为三类
以 Cassandra 为例,它是的一个高性能的分布式NOSQL 数据存储系统,它设置了如下 JVM 参数:
一般来说,比较常用的方法是通过 JMX 和 GC log 来度量你的 JVM 参数设置是是否合理,一旦发现异常或者 OOM 要马上采取措施进行调整
关于 JVM 内存溢出的分析可以参考以前写的 内存溢出不可怕,手足无措才尴尬
在 “-jar” 之前加上相应参数即可
-Xms:初始堆的分配大小,默认为物理内存的六十四分之一(Server端JVM最好将-Xms和-Xmx设为相同值);
-Xmx:堆的最大分配大小(默认为物理内存的四分之一);
-Xmn Java Heap Young区大小,不熟悉最好保留默认值;
-Xss 每个线程的Stack大小,不熟悉最好保留默认值;
-XX:+UseG1GC:用这个GC;
-XX:+PrintGCDetails:打印信息;
修改相应的 VM options参数即可
复制粘贴到txt文件中,之后,记得改后缀名为“.bat”
TITLE 数据上报 8090
"C:\Users\guany\Desktop\开发\JDK8\bin\java.exe" -Xms512m -Xmx512m -XX:+UseG1GC -XX:+PrintGCDetails -jar pt_dataPush_api-1.0.0.jar
pause
1
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)