网易首页 > 网易号 > 正文 申请入驻

一起搞定Tomcat重要参数调优

0
分享至

tomcat这只老猫为何能活过普通猫咪能活的年龄?这与它轻巧的构造有关,还与它卓越的性能有关。现在的tomcat,版本已经飙到10了!最新的版本是10.0.2。

tomcat这只老猫为何能活过普通猫咪能活的年龄?这与它轻巧的构造有关,还与它卓越的性能有关。现在的tomcat,版本已经飙到10了!最新的版本是10.0.2。

tomcat的配置参数奇多,但想要达到优化效果,我们并不需要全部关注。本文将详细介绍一些主要的配置参数,保证让你这只老猫跑的更快!

一般最常做的更改,就是修改服务器的端口,也就是server.xml里的Connector部分。典型如下图所示:

其实,大部分优化,也是在Connector标签之内,从端口、并发到线程,都可以在这里配置。

一. 3个参数搞定并发配置

作为一个能承接高并发互联网请求的Web容器,首当其冲的当然是海量请求的冲击。幸运的是Tomcat支持NIO,我们可以通过调整线程数和并发配置,让它表现出最佳的性能。

  1. maxThreads -- tomcat接收客户端请求的最大线程数,也就是同时处理任务的个数,它的默认大小为200;一般来说,在高并发的I/O密集型应用中,这个值设置为1000左右比较合理
  2. maxConnections 这个参数是指在同一时间,tomcat能够接受的最大连接数。对于Java的阻塞式BIO,默认值是maxthreads的值;如果在BIO模式使用定制的Executor执行器,默认值将是执行器中maxThreads的值。对于Java 新的NIO模式,maxConnections 默认值是10000,所以这个参数我们一般保持不动即可
  3. acceptCount -- 当线程数量达到上面设置的值,所能接受的最大排队数量。超过了这个值,请求就会被拒绝。我一般会设置成和maxThreads设置成一样大的

简单说明一下上面三个参数的关系:

系统能够保持的连接数

maxConnections+acceptCount,区别是maxConnections中的连接可以被调度处理;acceptCount中的连接只能等待排队

系统能处理的请求数

maxThreads的大小,实际能够工作的线程数量。
幸福指数:maxThreads > maxConnections > acceptCount。
现在有些文章还充斥着maxProcessors和minProcessors。但这两个参数,从Tomcat5开始被deprecated,从6开始就彻底没了。
只能说你看到的这些文章,可能真的是不懂技术的运营发表的。
以8为代表,具体配置参数可以参见:
https://tomcat.apache.org/tomcat-8.0-doc/config/http.html

二、线程配置

在并发配置方面,可以看到我们只有minSpareThreads,但是却没有maxSpareThreads。这是因为,从Tomcat 6开始增加Executor 节点,这个参数已经没用了。

由于线程是一个池子,所以它的配置,满足池的一切特点。

参照:https://tomcat.apache.org/tomcat-8.0-doc/config/executor.html

  1. namePrefix -- 每个新开线程的名称前缀
  2. maxThreads -- 线程池中的最大线程数
  3. minSpareThreads -- 一直处于活跃状态的线程数
  4. maxIdleTime -- 线程的空闲时间,在超过空闲时间时这些线程则会被销毁
  5. threadPriority -- 线程池中线程的优先级,默认为5

三、搞定JVM配置

tomcat是Java应用,所以JVM的配置同样会影响它的性能。比较重要的配置参数如下。

3.1、内存区域大小

首先要调整的,就是各个分区的大小,不过这也要分垃圾回收器,我们仅看一下一些全局的参数。

  1. -XX:+UseG1GC 首先,要指定JVM使用的垃圾回收器。尽量不要靠默认值去保证,要显式的指定一个。
  2. -Xmx 设置堆的最大值,一般为操作系统的2/3大小。
  3. -Xms 设置堆的初始值,一般设置成和Xmx一样的大小来避免动态扩容。
  4. -Xmn 年轻代大小,默认新生代占堆大小的1/3。高并发快消亡场景可适当加大这个区域。对半,或者更多,都是可以的。但是在G1下,就不用再设置这个值了,它会自动调整。
  5. -XX:MaxMetaspaceSize 限制元空间的大小,一般256M足够。这一般和初始大小**-XX:MetaspaceSize**设置成一样的。
  6. -XX:MaxDirectMemorySize 设置直接内存的最大值,限制通过DirectByteBuffer申请的内存。
  7. -XX:ReservedCodeCacheSize 设置JIT编译后的代码存放区大小,如果观察到这个值有限制,可以适当调大,一般够用。
  8. -Xss 设置栈的大小,默认为1M,已经足够用了。

3.2、内存调优

  1. -XX:+AlwaysPreTouch 启动时就把参数里说好了的内存全部初始化,启动时间会慢一些,但运行速度会增加。
  2. -XX:SurvivorRatio 默认值为8。表示伊甸区和幸存区的比例。
  3. -XX:MaxTenuringThreshold 这个值在CMS下默认为6,G1下默认为15。这个值和我们前面提到的对象提升有关,改动效果会比较明显。对象的年龄分布可以使用**-XX:+PrintTenuringDistribution**打印,如果后面几代的大小总是差不多,证明过了某个年龄后的对象总能晋升到老生代,就可以把晋升阈值设小。
  4. PretenureSizeThreshold 超过一定大小的对象,将直接在老年代分配。不过这个参数用的不是很多。

3.3、垃圾回收器优化

G1垃圾回收器

  1. -XX:MaxGCPauseMillis 设置目标停顿时间,G1会尽力达成。
  2. -XX:G1HeapRegionSize 设置小堆区大小。这个值为2的次幂,不要太大,也不要太小。如果是在不知道如何设置,保持默认。
  3. -XX:InitiatingHeapOccupancyPercent 当整个堆内存使用达到一定比例(默认是45%),并发标记阶段就会被启动。
  4. -XX:ConcGCThreads 并发垃圾收集器使用的线程数量。默认值随JVM运行的平台不同而不同。不建议修改。

四、其他重要配置

再看几个在Connector中配置的重要参数。

  1. enableLookups -- 调用request、getRemoteHost()执行DNS查询,以返回远程主机的主机名,如果设置为false,则直接返回IP地址。这个要根据需求来
  2. URIEncoding -- 用于解码URL的字符编码,没有指定默认值为ISO-8859-1
  3. connectionTimeout -- 连接的超时时间(以毫秒为单位)
  4. redirectPort -- 指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号

五、总结

tomcat是最常用的web容器,提供了数百个配置参数。但我们在平常的使用中,没必要把所有的参数都弄清楚,只关注最重要的就可以了。

本文地址:https://www.linuxprobe.com/tomcat-import-tiao.html

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
泽连斯基倒逼卢卡申科与普京切割,白俄必须在俄乌之间选边站了

泽连斯基倒逼卢卡申科与普京切割,白俄必须在俄乌之间选边站了

合赞历史
2026-06-25 18:06:23
男子因汗多味大被健身房退卡,还送他其他店月卡;男子:我是“严肃的健身爱好者”,出汗后都会清理;健身房:很浓很浓的味道

男子因汗多味大被健身房退卡,还送他其他店月卡;男子:我是“严肃的健身爱好者”,出汗后都会清理;健身房:很浓很浓的味道

洪观新闻
2026-06-25 16:14:01
981天,146场缺阵:内马尔14分钟告诉世界,什么叫“迟到的英雄”

981天,146场缺阵:内马尔14分钟告诉世界,什么叫“迟到的英雄”

新姐看世界
2026-06-25 15:41:55
大意了!云南58岁男子徒手抓“大麻蛇”,被咬一口后,还和蛇淡定合影,结果历经4次抢救,两度被推进ICU;当事人:再也不敢了

大意了!云南58岁男子徒手抓“大麻蛇”,被咬一口后,还和蛇淡定合影,结果历经4次抢救,两度被推进ICU;当事人:再也不敢了

极目新闻
2026-06-25 21:15:55
日元暴跌破40年纪录!日本狂抛美债救市,美国反手收紧致命枷锁

日元暴跌破40年纪录!日本狂抛美债救市,美国反手收紧致命枷锁

李健政观察
2026-06-25 11:20:16
韩红被质疑“走到哪,哪就是她的老家”,央媒报道显示,其生于西藏昌都,两岁时前往成都,后定居北京,祖籍山东德州,并非在西藏长大

韩红被质疑“走到哪,哪就是她的老家”,央媒报道显示,其生于西藏昌都,两岁时前往成都,后定居北京,祖籍山东德州,并非在西藏长大

大风新闻
2026-06-25 14:15:08
难以置信!第一神童宁铂,17岁留校任教,27岁被关监狱,38岁出家

难以置信!第一神童宁铂,17岁留校任教,27岁被关监狱,38岁出家

从零到一研究所
2026-06-25 17:45:36
微信有77万条未读!多名老人被微信群“轰炸”,家属称投诉无门,律师解读

微信有77万条未读!多名老人被微信群“轰炸”,家属称投诉无门,律师解读

潇湘晨报
2026-06-25 21:31:17
乌法炼油综合体被炸!百年难遇之机即将到来,莫要放过当历史罪人

乌法炼油综合体被炸!百年难遇之机即将到来,莫要放过当历史罪人

鹰眼Defence
2026-06-25 18:09:49
9队遭淘汰,韩国爆冷出局,非洲黑马晋级,亚洲无一出线

9队遭淘汰,韩国爆冷出局,非洲黑马晋级,亚洲无一出线

吴朑爱游泳
2026-06-25 16:41:12
美军震不震惊不清楚我反正挺震惊

美军震不震惊不清楚我反正挺震惊

阿亮评论
2026-06-25 18:51:44
今天又见证历史了

今天又见证历史了

贩财局
2026-06-25 16:26:59
卞志刚被查,国家国防科工局党组:坚决拥护党中央决定

卞志刚被查,国家国防科工局党组:坚决拥护党中央决定

澎湃新闻
2026-06-25 00:00:05
打平即出线,韩国输掉了:孙兴慜?李刚仁?

打平即出线,韩国输掉了:孙兴慜?李刚仁?

张佳玮写字的地方
2026-06-25 12:08:37
“霸总专业户”退出短剧后摆摊卖菜,“我依然想演戏”

“霸总专业户”退出短剧后摆摊卖菜,“我依然想演戏”

极目新闻
2026-06-25 19:29:22
安徽15岁女孩在一网红景点拍照时坠湖身亡,前一天刚参加中考,事后网上仍有人推荐前往打卡,官方:事发地是废弃矿坑

安徽15岁女孩在一网红景点拍照时坠湖身亡,前一天刚参加中考,事后网上仍有人推荐前往打卡,官方:事发地是废弃矿坑

大象新闻
2026-06-25 22:53:26
当“太妹”遇到“穷鬼”,于是就有了“13岁女孩被强奸却不立案”

当“太妹”遇到“穷鬼”,于是就有了“13岁女孩被强奸却不立案”

刘既济
2026-06-25 16:20:45
0-3,将欧洲球队脸都丢光了,水平和国足差不多,怎么进世界杯的

0-3,将欧洲球队脸都丢光了,水平和国足差不多,怎么进世界杯的

我就是一个说球的
2026-06-25 19:03:20
中日男篮世预赛,比赛时间出炉,河村勇辉随队,杨瀚森是第三中锋

中日男篮世预赛,比赛时间出炉,河村勇辉随队,杨瀚森是第三中锋

童叔不飙车
2026-06-26 00:39:46
重磅!美国就俄乌战争作出公开表态!白俄对乌打开边境

重磅!美国就俄乌战争作出公开表态!白俄对乌打开边境

史政先锋
2026-06-25 20:58:05
2026-06-26 01:32:49
linux系统运维之家
linux系统运维之家
科技资讯
1392文章数 7550关注度
往期回顾 全部

科技要闻

存储成本压力山大!苹果罕见全球提价

头条要闻

男子徒手抓蛇被咬还淡定合影 结果历经4次抢救两进ICU

头条要闻

男子徒手抓蛇被咬还淡定合影 结果历经4次抢救两进ICU

体育要闻

世界杯最动人一吻:我若离世 你就改嫁吧

娱乐要闻

这国产剧太装了,居然还热播第一?

财经要闻

又有纸尿裤送检后被检测出甲酰胺!

汽车要闻

老板们的新座驾!65万元起,尊界V800/V680开启预订

态度原创

本地
家居
房产
公开课
军事航空

本地新闻

2026世界杯全勤太难?这份保姆级攻略请收好

家居要闻

绿意盎然 自然之境

房产要闻

城市精英集体出手!科学城这一现象级热销红盘,凭何成为共识之选?

公开课

李玫瑾:为什么性格比能力更重要?

军事要闻

特朗普:现在到了关注朝鲜问题的时候了

无障碍浏览 进入关怀版