温馨提示×

centos环境下tomcat内存配置指南

小樊
55
2025-08-20 18:25:53
栏目: 智能运维

一、配置文件位置

修改Tomcat启动脚本catalina.sh(位于$CATALINA_HOME/bin/目录),通过设置JAVA_OPTS参数调整内存。

二、核心参数说明

  • -Xms:初始堆内存大小(如-Xms512m,建议与-Xmx保持一致以减少GC开销)。
  • -Xmx:最大堆内存大小(建议不超过物理内存的50%,如服务器内存16GB,可设为8GB-12GB)。
  • -XX:PermSize/-XX:MaxPermSize:永久代内存(仅JDK 7及之前需设置,JDK 8+已被元空间取代,无需配置)。
  • -XX:NewSize/-XX:MaxNewSize:年轻代内存大小(建议设置为堆内存的1/3-1/2,如-Xms2g -Xmx2g -XX:NewSize512m -XX:MaxNewSize512m)。
  • 垃圾回收器:可添加-XX:+UseG1GC(推荐,适用于大内存场景)或-XX:+UseConcMarkSweepGC

三、配置步骤

  1. 编辑启动脚本

    sudo vi $CATALINA_HOME/bin/catalina.sh
    

    在文件开头添加或修改JAVA_OPTS,例如:

    JAVA_OPTS="-server -Xms2048m -Xmx2048m -XX:NewSize512m -XX:MaxNewSize512m -XX:+UseG1GC -Djava.awt.headless=true"
    

    说明-server启用服务器模式;-Djava.awt.headless=true避免无图形界面报错。

  2. 重启Tomcat生效

    sudo systemctl restart tomcat
    
  3. 验证配置
    通过以下命令查看内存参数是否生效:

    ps aux | grep tomcat  # 查看进程参数中的 -Xms、-Xmx
    # 或查看启动日志
    tail -f $CATALINA_HOME/logs/catalina.out
    

四、注意事项

  • 内存分配原则-Xms-Xmx尽量相等,避免堆内存动态调整带来的性能损耗。
  • 避免过度分配:内存设置过大可能导致系统频繁进行内存交换(swap),反而降低性能。
  • 监控与调优:使用jstatVisualVM监控内存使用情况,根据应用负载调整参数。

五、参考配置示例

服务器内存 推荐配置(JDK 8+) 说明
8GB -Xms4g -Xmx4g -XX:NewSize1g 平衡型配置,适合中小型应用
16GB -Xms8g -Xmx8g -XX:NewSize2g 大型应用,启用G1垃圾回收器
32GB+ -Xms16g -Xmx16g -XX:NewSize4g 高并发场景,需结合监控调整

参考来源:

0