温馨提示×

如何优化Ubuntu Tomcat的JVM参数

小樊
37
2025-03-01 22:17:42
栏目: 智能运维
Ubuntu服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

优化Ubuntu Tomcat的JVM参数可以通过修改Tomcat的启动脚本和配置文件来实现。以下是一些关键的优化步骤和参数设置:

1. 修改 catalina.sh 文件

在Tomcat的 bin 目录下找到 catalina.sh 文件,并进行如下修改:

# 设置JVM参数
JAVA_OPTS="-server -Xms512m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:NewRatio=4 -XX:MaxTenuringThreshold=50 -XX:+DisableExplicitGC"
  • -server: 启用服务器模式的JVM。
  • -Xms512m: 设置初始堆大小为512MB。
  • -Xmx1024m: 设置最大堆大小为1024MB。
  • -XX:NewSize=512m: 设置年轻代初始大小为512MB。
  • -XX:MaxNewSize=512m: 设置年轻代最大大小为512MB。
  • -XX:PermSize=256m: 设置永久代初始大小为256MB。
  • -XX:MaxPermSize=256m: 设置永久代最大大小为256MB。
  • -XX:NewRatio=4: 设置年轻代与老年代的比例为1:4。
  • -XX:MaxTenuringThreshold=50: 设置对象在年轻代中的最大年龄为50。
  • -XX:+DisableExplicitGC: 禁用显式垃圾回收调用。

2. 修改 server.xml 文件

在Tomcat的 conf 目录下找到 server.xml 文件,并进行如下修改:

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443"
           maxThreads="200"
           minSpareThreads="50"
           acceptCount="250"
           URIEncoding="UTF-8"
           enableLookups="false" />
  • maxThreads="200": 设置Tomcat的最大线程数为200。
  • minSpareThreads="50": 设置Tomcat初始化时创建的线程数为50。
  • acceptCount="250": 设置当所有线程都在处理请求时,允许排队等待的最大请求数为250。
  • URIEncoding="UTF-8": 设置URL编码为UTF-8,避免中文乱码。
  • enableLookups="false": 禁用域名反查,提高处理能力。

3. 其他优化建议

  • 启用垃圾回收日志:

    JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/path/to/tomcat/logs/gc.log"
    
  • 调整堆内存分配:

    根据服务器的物理内存大小调整堆内存分配,一般建议将初始堆大小(-Xms)和最大堆大小(-Xmx)设置为物理内存的一半。

    JAVA_OPTS="$JAVA_OPTS -Xms512m -Xmx1024m"
    
  • 调整年轻代和老年代的比例:

    JAVA_OPTS="$JAVA_OPTS -XX:NewRatio=4"
    

4. 使用 ulimit 命令调整系统资源限制

在终端中运行以下命令,调整系统资源限制:

ulimit -n 65535  # 调整文件描述符的最大数量
ulimit -u 65535  # 调整用户进程数的最大数量

5. 内核参数优化

编辑 /etc/sysctl.conf 文件,添加以下内容:

net.ipv4.tcp_syncookies=1
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_tw_recycle=1
net.ipv4.tcp_fin_timeout=60
net.ipv4.tcp_synack_retries=1
net.ipv4.tcp_syn_retries=1
net.ipv4.tcp_fastopen=3
net.ipv4.tcp_keepalive_time=1200
net.ipv4.tcp_max_syn_backlog=8192
net.ipv4.tcp_max_tw_buckets=5000
net.ipv4.ip_local_port_range=1024 65535
net.core.netdev_max_backlog=8192
net.core.somaxconn=8192
net.core.rmem_max=12582912
net.core.rmem_default=6291456
net.core.wmem_max=12582912
net.core.wmem_default=6291456

然后运行以下命令使配置生效:

sudo sysctl -p

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:如何优化Ubuntu Tomcat性能

0