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。通常情况下,新生代的大小应根据应用程序的内存分配模式和性能需求进行调整。较大的新生代可以容纳更多的新对象,但也会导致更频繁的垃圾回收。

相关推荐
zhrb7 小时前
打开Firefox自动打开hao360.hjttif.com标签解决方案
前端·firefox
不修×蝙蝠7 小时前
Tomcat理论(Ⅰ)
java·服务器·java-ee·tomcat
~Yogi9 小时前
新版Tomcat MySQL IDEA 安装配置过程遇到的问题
mysql·tomcat·intellij-idea
互联网动态分析1 天前
Tomcat:卓越之选,赋能Java Web应用的稳健运行
tomcat
红豆和绿豆1 天前
springboot项目如何部署到tomcat中
服务器·spring boot·tomcat
小安同学iter2 天前
使用Maven将Web应用打包并部署到Tomcat服务器运行
java·tomcat·maven
小钊(求职中)2 天前
Java开发实习面试笔试题(含答案)
java·开发语言·spring boot·spring·面试·tomcat·maven
shix .2 天前
什么是tomcat
java·tomcat
天荒地老笑话么2 天前
Mac安装配置Tomcat 8
java·macos·tomcat
Allen_LVyingbo2 天前
DeepSeek R1与互联网医院的深度融合:金医慧通案例的创新实践与启示
人工智能·spring boot·tomcat·健康医疗·互联网医院