Java -jar 参数配置-浅尝辄止

2023-09-24  本文已影响0人  CoderInsight

在生产环境中,配置JVM启动参数是一项重要的任务,可以通过这些参数优化Java应用程序的性能、内存管理和调试等方面。以下是一些常见的示例:

1),GC相关参数配置

A,配置实战案例

开启GC日志生成,写入到指定的目录,并设置日志按照指定大小进行滚动生成。

## 2023年8月29日 10:43:30 尝试生成gc文件
java -jar -XX:+PrintGCDetails  -XX:+PrintGCDateStamps  -Xloggc:/home/demo/logs/gc/gc-test.log  -XX:+UseGCLogFileRotation  -XX:NumberOfGCLogFiles=10  -XX:GCLogFileSize=512k xxx.jar
B,配置参数说明

2),堆内存相关参数配置

A,配置案例
java -jar -Xms2g -Xmx4g -XX:NewRatio=2 -XX:PermSize=256m -XX:MaxPermSize=512m xxx.jar
B,配置参数说明:

3),堆内存默认配置

A,如果内存小于192兆字节(MB)
  1. 堆内存的最大值为物理内存的"1/2",例如设备本身具有128M物理内存,则最大堆大小为64 MB;
  2. 堆内存的最小值,不得少于8M;
B,如果内存大于192兆字节(MB)
  1. 此时堆内存的最大值便是物理内存的"1/4",例如设备本身的内存是1G,那么最大的堆内存大小为256M。
  2. 此时最小的堆内存将会物理的内存的"1/64"。例如设备本身的内存是1G,那么最小的堆内存大小为16M。
C,共性
  1. JVM初始分配的内存由 -Xms 指定;
  2. JVM最大分配的内存由 -Xmx 指定;
  3. 默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、-Xmx相等以避免在每次GC后调整堆的大小。
  4. JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的"1/64";由-XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的"1/4"。

4),实际生产环境配置

gc日志生成与堆内存配置示例

nohup java -jar -Xms2g -Xmx4g -XX:NewRatio=2 -XX:PermSize=256m -XX:MaxPermSize=512m -XX:+PrintGCDetails  -XX:+PrintGCDateStamps  -Xloggc:/home/demo/logs/gc/gc-test.log   -XX:+UseGCLogFileRotation  -XX:NumberOfGCLogFiles=10  -XX:GCLogFileSize=512k $APP_NAME > /dev/null 2>&1 &
上一篇 下一篇

猜你喜欢

热点阅读