在CentOS系统中配置Java虚拟机(JVM)参数可以通过以下几种方式进行:
启动脚本通常位于 /etc/init.d/
目录下,例如 /etc/init.d/myapp
。编辑脚本,在启动Java应用的命令行中添加所需参数。例如:
java -Xmx512m -Xms256m -jar myapp.jar
这分别设置了最大堆内存为512MB和最小堆内存为256MB。
服务文件通常位于 /etc/systemd/system/
目录下,例如 myapp.service
。在 ExecStart
行添加JVM参数。例如:
[Unit]
Description=My Java Application
After=network.target
[Service]
User=myuser
Group=mygroup
ExecStart=/usr/bin/java -Xmx512m -Xms256m -jar /path/to/myapp.jar
SuccessExitStatus=143
TimeoutStopSec=10
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
重新加载systemd配置、启动并启用服务:
sudo systemctl daemon-reload
sudo systemctl start myapp
sudo systemctl enable myapp
sudo systemctl status myapp
在 /etc/profile.d/
目录下创建一个脚本文件,例如 java_params.sh
:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
export JAVA_OPTS="-Xms512m -Xmx1024m"
使环境变量生效:
source /etc/profile.d/java_params.sh
在启动脚本中使用环境变量:
java $JAVA_OPTS -jar myapp.jar
一些应用服务器(如Apache Tomcat、JBoss、WebLogic等)可以通过其配置文件为JVM参数进行设置。例如,在Tomcat中,编辑 setenv.sh
(Linux)或 setenv.bat
(Windows)文件,添加JVM参数:
export JAVA_HOME=/usr/lib/jvm/jdk-11.0.2
export JAVA_OPTS="-Xms512m -Xmx1024m -XX:+UseG1GC"
在开发环境中,可以在IDE(如Eclipse、IntelliJ IDEA)中为JVM设置参数。例如,在IntelliJ IDEA中,右键点击要运行的Java类,选择“Edit Configurations”,在“VM options”中输入JVM参数。
对于Spring Boot应用,可以在 application.properties
或 application.yml
文件中设置JVM参数,也可以通过 SPRING_BOOT_JAVA_OPTS
环境变量或启动脚本的方式设置。例如,在 application.properties
中指定JVM参数:
spring.run.jvm-arguments -Xms512m -Xmx1024m
-Xms
: 设置初始堆内存大小。-Xmx
: 设置最大堆内存大小。-Xss
: 设置每个线程的栈大小。-XX:NewRatio
: 设置年轻代与老年代的比例。-XX:SurvivorRatio
: 设置新生代中Eden区与Survivor区的比例。-XX:+UseParallelGC
: 启用并行垃圾收集器。-XX:+UseConcMarkSweepGC
: 启用并发标记清除垃圾收集器。-XX:+UseG1GC
: 启用G1垃圾收集器(适用于Java 7及更高版本)。-XX:MaxGCPauseMillis
: 设置垃圾收集的最大暂停时间(适用于G1垃圾收集器)。在进行任何配置之前,建议先在测试环境中进行验证。避免过度调优,以免影响系统的稳定性和性能。