Tomcat 的 JVM 配置主要通过 setenv.sh
(Linux/Unix)或 setenv.bat
(Windows)文件完成,这些文件通常位于 Tomcat 安装目录的 bin
文件夹中。通过设置不同的 JVM 参数,可以优化 Tomcat 的性能和稳定性。
基于 Java 1.6 的配置
-
内存设置
-Xms<size>
: 设置JVM启动时的初始堆内存大小。-Xmx<size>
: 设置JVM的最大堆内存大小。- 示例:
-Xms512m -Xmx1024m
-
垃圾回收器
-XX:+UseParallelGC
: 使用并行垃圾收集器。-XX:MaxGCPauseMillis=<time>
: 尽量减少垃圾收集的暂停时间。- 示例:
-XX:+UseParallelGC -XX:MaxGCPauseMillis=200
-
永久代(PermGen)
-XX:PermSize=<size>
: 设置永久代的初始大小。-XX:MaxPermSize=<size>
: 设置永久代的最大大小。- 示例:
-XX:PermSize=128m -XX:MaxPermSize=256m
-
其他常用参数
-Djava.awt.headless=true
: 在无头模式下运行,适用于没有图形界面的服务器。-Dfile.encoding=UTF-8
: 设置文件编码为UTF-8。- 示例:
-Djava.awt.headless=true -Dfile.encoding=UTF-8
基于 Java 1.8 的配置
-
内存设置
-Xms<size>
: 设置JVM启动时的初始堆内存大小。-Xmx<size>
: 设置JVM的最大堆内存大小。- 示例:
-Xms512m -Xmx1024m
-
垃圾回收器
-XX:+UseG1GC
: 使用G1垃圾收集器,适用于大内存应用。-XX:MaxGCPauseMillis=<time>
: 尽量减少垃圾收集的暂停时间。- 示例:
-XX:+UseG1GC -XX:MaxGCPauseMillis=200
-
元空间(Metaspace)
-XX:MetaspaceSize=<size>
: 设置元空间的初始大小。-XX:MaxMetaspaceSize=<size>
: 设置元空间的最大大小。- 示例:
-XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m
-
其他常用参数
-Djava.awt.headless=true
: 在无头模式下运行,适用于没有图形界面的服务器。-Dfile.encoding=UTF-8
: 设置文件编码为UTF-8。- 示例:
-Djava.awt.headless=true -Dfile.encoding=UTF-8
示例配置文件
setenv.sh (Linux/Unix)
sh
export JAVA_OPTS="-Xms512m -Xmx1024m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -Djava.awt.headless=true -Dfile.encoding=UTF-8"
setenv.bat (Windows)
bat
set JAVA_OPTS=-Xms512m -Xmx1024m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -Djava.awt.headless=true -Dfile.encoding=UTF-8
注意事项
- 内存设置:根据实际应用的负载和服务器资源合理设置内存参数。
- 垃圾回收器:选择合适的垃圾收集器以优化性能。
- 元空间:Java 1.8 取消了永久代,使用元空间替代,注意调整元空间大小。
- 测试和监控:配置完成后,建议进行性能测试和监控,确保应用稳定运行。