在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垃圾收集器)。在进行任何配置之前,建议先在测试环境中进行验证。避免过度调优,以免影响系统的稳定性和性能。