Tomcat在Debian上的内存配置建议
Tomcat的内存配置主要通过修改catalina.sh(位于{TOMCAT_HOME}/bin/目录)中的JAVA_OPTS环境变量实现,关键参数包括:
-Xms512m),建议设置为物理内存的1/64~1/4(如8GB内存可设为1~2GB),避免启动时频繁申请内存。-Xmx2048m),建议设置为物理内存的70%~80%(如8GB内存可设为5.6~6.4GB),防止内存溢出(OutOfMemoryError)。-XX:MaxMetaspaceSize=256m),替代Java 8前的-XX:MaxPermSize(永久代),默认无限制,需根据应用类数量调整(如应用依赖大量第三方jar,可适当增大)。-XX:MetaspaceSize=128m),默认约21MB,建议设置为与-XX:MaxMetaspaceSize相近以减少扩容开销。建议使用G1垃圾回收器(适用于Java 8及以上版本),替代传统的CMS或Parallel GC,提升大内存场景下的回收效率:
JAVA_OPTS="$JAVA_OPTS -XX:+UseG1GC"
G1通过分区回收和并发处理,减少Full GC停顿时间,适合高并发、大堆内存的Tomcat应用。
线程池参数需在server.xml(位于{TOMCAT_HOME}/conf/目录)的Connector元素中设置,关键参数包括:
maxThreads="200"),建议根据并发请求数调整(如轻量级应用设为100~200,高并发应用设为200~500),避免线程过多导致CPU竞争。minSpareThreads="25"),保持一定数量的空闲线程,快速响应突发请求。acceptCount="1000"),当所有线程繁忙时,新请求进入队列等待,超过队列长度则拒绝请求(需结合maxThreads调整)。JAVA_OPTS="-server -Xms512m -Xmx1024m -XX:MaxMetaspaceSize=256m -XX:+UseG1GC"
JAVA_OPTS="-server -Xms1024m -Xmx2048m -XX:MaxMetaspaceSize=512m -XX:+UseG1GC"
JAVA_OPTS="-server -Xms4g -Xmx4g -XX:MaxMetaspaceSize=1g -XX:+UseG1GC"
注:-server参数启用服务器模式,优化多核CPU的性能表现。top、htop命令查看Tomcat进程的内存占用(RES列表示实际使用内存)。jmap -heap <pid>命令查看堆内存的详细分配(如Eden区、Survivor区、Old区占比)。-verbose:gc -Xloggc:/path/to/gc.log参数记录GC日志,通过jconsole、jvisualvm或GCViewer工具分析GC频率和耗时,判断是否需要调整堆大小或垃圾回收器参数。catalina.sh、server.xml)。sudo systemctl restart tomcat)使配置生效。