前言
最近公司有个独立的小模块是我这边负责开发上线,涉及到jvm参数调整方面,主要是根据服务器的配置4C16G配置了以下的参数,程序单纯只是接口查询redis以及信息上报,数据量大概是每天3000万!
代码语言:javascript复制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 &
代码语言:javascript复制参数解析:
-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 文件。