tomcat的优化

TOMCAT的优化

tomcat的优化主要是从三个方面进行的,第一个是 tomcat配置的优化第二是对JVM虚拟机的优化第三是对Linux系统内核的优化,配置文件中的优化主要在tomcat中server.xml文件夹内

tomcat配置文件的优化

1、 maxThreads:

Tomcat 使用线程来处理接收的每个请求,这个值表示 Tomcat 可创建的最大的线程数,默认值是 200。

修改tomcat/conf/server.xml的配置文件,并修改 在模块中进行修改,如图

bash 复制代码
<Connector port="8081" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
                maxThreads="300"    />

把TomCat的最大并发量改成300

2、minSpareThreads:

最小空闲线程数,Tomcat 启动时的初始化线程数,表示即使没有人使用也开这么多空线程等待,默认值是 10

下面是在第一题基础上把最小空闲线程数改成20

在Connector设置块中加入

bash 复制代码
minSpareThreads="20"

3、connnectionTimeout;

网络连接超时,单位:毫秒,设置为 0 表示永不超时,这样设置有隐患的。通常默认 20000 毫秒就可以。

可以在Connector模块里加入

bash 复制代码
connnectionTimeout="30000"

就可以设置完成长连接持续时间30秒

4、maxKeepAliveRequests

最大连接请求数

它用于指定允许的最大持久连接(Keep-Alive)请求数。持久连接允许客户端在单个TCP连接上发送多个HTTP请求,以减少连接的开销,提高性能。通俗的来说,就是一次长连接允许发送的HTTP请求数,通常默认是-1也就是不限制

在Connector模块里加入

bash 复制代码
maxKeepAliveRequests="100"

5、acceptCount

它用于指定在Tomcat已经满负荷工作时,接受新连接的请求数量。当所有的处理线程都在工作时,新的连接请求会被放置在一个队列中等待处理。默认值:acceptCount的默认值通常是100。这意味着当Tomcat的处理线程已满时,最多会接受100个新的连接请求,其余请求会被拒绝。

bash 复制代码
acceptCount="200"

将最大等待链接数设置成200

6、enableLookups

用于指定是否进行DNS反查(反向DNS查找)以返回客户端主机的主机名。将其设置为 true 表示Tomcat会尝试通过客户端IP地址查找对应的主机名,而将其设置为 false 则表示Tomcat不进行反查,直接返回IP地址,以提高性能。默认值:通常情况下,enableLookups 的默认值为 true,这意味着Tomcat会尝试进行DNS反查以获取客户端主机的主机名。从性能方面考虑建议关闭

在Connector模块里加入可以关闭DNS反查

bash 复制代码
enableLookups="false"

JVM虚拟机的优化

catalina.sh 中设置

bash 复制代码
JAVA_OPTS="$JAVA_OPTS -server -Xms2048m -Xmx2048m -XX:PermSize=1024m -XX:MaxPermSize=1024m -Xmn768m"
  1. -server:这个选项启用了JVM的Server模式,它是一种优化模式,适用于多核服务器,可以提供更好的性能。Server模式主要优化了编译和运行时的性能,适合长时间运行的应用程序。通常情况下,使用 -server 是一个好的做法,特别是在生产环境中。

  2. -Xms2048m -Xmx2048m:这两个选项用于设置JVM的堆内存大小。-Xms 设置堆的初始大小,-Xmx 设置堆的最大大小。在你的配置中,堆内存被设置为2GB,这意味着JVM会启动时分配2GB的初始堆空间,并且允许堆的最大大小达到2GB。这个设置可以根据你的应用程序和服务器的性能需求进行调整,通常设置为物理内存的一部分,以避免频繁的垃圾回收。

  3. -XX:PermSize=1024m -XX:MaxPermSize=1024m:这两个选项用于设置JVM的永久代(PermGen)大小。永久代主要用于存储类的元数据信息,例如类的结构、方法、字段等。在Java 8及更高版本中,永久代被元数据区(Metaspace)取代,因此这些选项在Java 8及以后的版本中不再有效。在你的配置中,永久代被设置为1GB,这通常足够存储大多数应用程序的类元数据。类元数据的大小取决于应用程序的复杂性和使用的库。

  4. -Xmn:这个选项用于设置JVM堆内存中的新生代大小。新生代是堆内存的一部分,用于存储新创建的对象。在你的配置中,新生代被设置为768MB,这是堆内存大小的3/8。通常情况下,新生代的大小应根据应用程序的内存分配模式和性能需求进行调整。较大的新生代可以容纳更多的新对象,但也会导致更频繁的垃圾回收。

相关推荐
xxwl58512 小时前
数据库后端接口测试报告
spring boot·mysql·tomcat
次次皮2 天前
Linux 下通过 XShell 手动更新 Tomcat 应用并重启
前端·tomcat·jar
Listen·Rain4 天前
用AI开发出一个AI
java·人工智能·spring boot·tomcat·intellij-idea·mybatis·visual studio
大模型丫丫5 天前
Spring Boot 入门指南:从零开始构建微服务
spring boot·微服务·firefox
Full Stack Developme5 天前
SpringBoot 内嵌 Tomcat 的启动流程
spring boot·后端·tomcat
Full Stack Developme5 天前
Tomcat 如何处理HTTP请求
java·http·tomcat
Full Stack Developme6 天前
Tomcat 设计原理
java·tomcat
Full Stack Developme6 天前
Tomcat NIO连接器内部如何实现零拷贝 Session管理如何实现集群同步
java·tomcat·nio
BullSmall6 天前
Tomcat 部署 Jenkins → Docker Jenkins 完整迁移方案
docker·tomcat·jenkins
格尔曼Noah7 天前
Safari浏览器中如何只允许指定网站下载
前端·safari