美文网首页
Java -jar 参数配置-浅尝辄止

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

作者: CoderInsight | 来源:发表于2023-09-24 15:24 被阅读0次

    在生产环境中,配置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,配置参数说明
    • -XX:+PrintGCDetails:输出GC的详细日志;
    • -XX:+PrintGCDateStamps:输出GC的日期戳;
    • -Xloggc:/path/to/dir:指定GC日志路径;
    • -XX:+UseGCLogFileRotation:打开GC日志滚动记录功能;
    • -XX:NumberOfGCLogFiles:设置滚动日志文件的个数,必须大于等于1,日志文件命名策略是,.0, .1, …, .n-1,其中n是该参数的值;
    • -XX:GCLogFileSize:设置滚动日志文件的大小,必须大于512k,当前写日志文件大小超过该参数值时,日志将写入下一个文件;

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

    A,配置案例
    java -jar -Xms2g -Xmx4g -XX:NewRatio=2 -XX:PermSize=256m -XX:MaxPermSize=512m xxx.jar
    
    B,配置参数说明:
    • -Xms2g -Xmx4g:设置初始堆大小和最大堆大小,这将设置初始堆大小为2GB,最大堆大小为4GB。
    • -XX:NewRatio=2:设置新生代和老年代的比例为1:2
    • -XX:PermSize=256m -XX:MaxPermSize=512m:设置永久代/元空间的大小,这将指定永久代(对于旧版Java)或元空间(对于Java 8+)的初始大小为256MB,最大大小为512MB。

    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 &
    

    相关文章

      网友评论

          本文标题:Java -jar 参数配置-浅尝辄止

          本文链接:https://www.haomeiwen.com/subject/sgofbdtx.html