前言
最近公司有个独立的小模块是我这边负责开发上线,涉及到jvm参数调整方面,主要是根据服务器的配置4C16G配置了以下的参数,程序单纯只是接口查询redis以及信息上报,数据量大概是每天3000万!
nohup java -Xmx10G -Xms10G -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/applog/miservice/logs/ -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/applog/miservice/logs/gc.log -jar miservice.jar > /dev/null 2>&1 &
参数解析: -Xmx10G:将Java堆的最大内存大小设置为 10G。 -Xms10G:将Java堆的初始内存大小设置为 10G。 -XX:+HeapDumpOnOutOfMemoryError:指定在发生内存溢出错误时生成堆转储文件。 -XX:HeapDumpPath=/applog/miservice/logs/ :指定堆转储文件的日志路径,将堆转储文件保存在 /applog/miservice/logs/ 目录中。 -XX:+UseG1GC:启用G1垃圾回收器。 -XX:MaxGCPauseMillis=200:设置垃圾回收的最大停顿时间为 200 毫秒。 -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps:打印GC日志信息,包括详细的GC事件、日期时间戳等。 -Xloggc:/applog/miservice/logs/gc.log:将GC日志输出到指定的日志文件/applog/miservice/logs/gc.log。 -jar miservice.jar:指定要运行的Java应用程序的可执行JAR文件。 请根据你的具体需求进行调整,并确保将 -jar miservice.jar 替换为你要运行的Java应用程序的实际可执行JAR文件。另外,确保指定的日志路径存在并且有适当的写入权限。 nohup:在命令行中运行Java应用程序,并将其与终端分离,使其在后台执行。 > /dev/null 2>&1:将标准输出和标准错误重定向到 /dev/null,这样不会在当前目录下生成 nohup.out 文件。