centos

centos环境中tomcat如何调优

小樊
41
2025-08-16 17:06:52
栏目: 智能运维

在CentOS环境中优化Tomcat性能,可从系统、Tomcat配置和JVM参数三方面入手,具体如下:

一、系统层面优化

  1. 调整文件描述符限制
    编辑/etc/security/limits.conf,增加以下内容:

    * soft nofile 65536  
    * hard nofile 65536  
    

    避免Tomcat因文件描述符不足导致并发受限。

  2. 优化内核参数
    编辑/etc/sysctl.conf,添加以下参数:

    net.core.somaxconn=65535  
    net.ipv4.tcp_tw_reuse=1  
    net.ipv4.tcp_tw_recycle=1  
    fs.file-max=65536  
    

    提升网络连接和文件处理效率。

  3. 禁用透明大页
    编辑/etc/rc.local,添加命令:

    echo never > /sys/kernel/mm/transparent_hugepage/enabled  
    echo never > /sys/kernel/mm/transparent_hugepage/defrag  
    

    避免内存碎片影响性能。

二、Tomcat配置优化

  1. 线程池调优
    conf/server.xml中配置<Executor><Connector>参数:

    <Connector port="8080" protocol="HTTP/1.1"  
               maxThreads="500"  
               minSpareThreads="50"  
               acceptCount="200"  
               connectionTimeout="20000"  
               enableLookups="false"  
               compression="on"  
               URIEncoding="UTF-8" />  
    
    • maxThreads:根据CPU核心数设置为2-4倍(如4核可设800),处理高并发请求。
    • minSpareThreads:保持最小空闲线程数(如50),减少线程创建开销。
    • acceptCount:设置等待队列长度(如200),避免请求被过早拒绝。
    • 启用compression压缩响应数据,减少网络传输量。
  2. 禁用不必要的协议
    若无需AJP协议,注释或删除<Connector>protocol="AJP/1.3"的配置,减少资源占用。

  3. 静态资源缓存
    web.xml中配置静态资源缓存策略,减少重复加载:

    <servlet>  
      <servlet-name>default</servlet-name>  
      <init-param>  
        <param-name>cacheMaxSize</param-name>  
        <param-value>10240</param-value> <!-- 10MB缓存 -->  
      </init-param>  
    </servlet>  
    

三、JVM参数调优

  1. 内存配置
    bin/catalina.sh中设置JAVA_OPTS

    export JAVA_OPTS="-Xms2g -Xmx4g -XX:MaxPermSize=512m -XX:+UseG1GC"  
    
    • -Xms-Xmx:设置初始堆和最大堆大小(建议为物理内存的80%),避免频繁GC。
    • 选择G1垃圾回收器(-XX:+UseG1GC),适合大内存和高并发场景。
  2. GC日志与调优
    添加GC日志参数,便于分析内存回收情况:

    -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/tmp/tomcat-gc.log  
    

四、其他优化建议

注意:调优需结合实际业务负载逐步测试,避免参数设置过大导致资源浪费或系统不稳定。

0
看了该问题的人还看了