21丨Tomcat:中间件监控及常用计数器解析
该思维导图由 AI 生成,仅供参考
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了Tomcat性能分析的关键内容,重点讨论了中间件监控和常用计数器解析。作者首先强调了在性能分析中需要将Tomcat、JDK、框架代码和业务代码的分析内容分隔开来,以避免混乱。随后,文章详细介绍了Tomcat的架构和优化时需要关注的几个重要技术点,包括运行模式选择、请求量、请求时间、响应时间等。此外,还介绍了SSL证书对性能的影响以及Tomcat线程池的调优策略。 在测试场景一中,作者通过压力线程数远小于服务端线程数的情况下的测试结果和线程监控结果,展示了典型的线程足够用的状态。而在测试场景二中,通过逐渐增加压力线程数直至超过服务端线程数的测试结果和线程监控结果,展示了典型的线程配置不够的状态。这些实际场景的测试结果生动地展现了Tomcat性能分析中线程使用情况的变化,为读者提供了直观的参考。 文章还通过具体的测试场景和线程监控结果,帮助读者理解了压力线程对Tomcat性能的影响,强调了压力工具中的线程数增加并不一定对服务端性能有益,并且阐述了并发用户数不能用压力线程来描述的观点。整体而言,本文为读者提供了清晰的性能分析方法和优化建议,对于需要深入了解Tomcat性能分析的技术人员具有重要的参考价值。 文章还提出了两个思考题,引发读者对类似应用服务器的监控计数器拆解和应用服务器线程是否够用的思考。这些问题将有助于读者深入思考和交流,促进技术进步。整体而言,本文内容丰富,涵盖了Tomcat性能分析的多个关键方面,对读者具有较高的参考价值。
《性能测试实战 30 讲》,新⼈⾸单¥59
全部留言(12)
- 最新
- 精选
- Geek_f932341.如何判断代码快不快,我的理解是,压力工具中的线程数设置低于中间件的线程数,看看测试过程中服务器返回响应是否足够快 2.如何判断应用服务器线程是否够用? 测试过程中应用监控工具如jvisualvm监控线程同一时刻是否有空闲状态,如果一直是run那able状态,同时响应时间不断增加,说明线程数不够用 3.类似 Tomcat 的应用服务器,应该如何拆解监控计数器呢? 从以下几个方面的计数器来分析:协议(http,https),运行模式(BIO,AIO,APR),线程池;超时时间,压缩,TCP不延迟,禁用DNS查询,禁用AJP
作者回复: 非常认真的同学呀。
2020-02-11211 - 麦兜布熊老师教案中的NIO和AIO没看懂,图中poller的画着是NIO,下面的文字又说成AIO了。是说两个的原理都是基于poller吗
作者回复: 这里应该都写成NIO,已经修改了。 在写本文的时候,我一定走神了。 多谢提醒。 发现了错误,应该有奖励。加我微信:Zee_7D,领取大额红包。哈哈。
2020-02-2727 - ldm高老师,你好,想请问下,压力线程和服务器线程的区别?看了文章后有点弄不清楚了。并发用户数理解的意思是在同一时间点对同一事务做同一个操作的用户数;压力线程数是指的压力工具上配置的vuser数?服务器线程数是指tomcat上配置的maxthreads数吗?
作者回复: 并发用户数其实也是指一个单位时间内的事务操作数,不会是“时间点”。 压力线程数是指的压力工具上配置的vuser数?服务器线程数是指tomcat上配置的maxthreads数吗? 这两个问题答案都是“对”。
2022-06-172 - 小老鼠1,如何判断问题是Tomcat发生还是自己写的代码发生的。2,tomcat的log日志太多,会影响性能的吧?3,JBoos、Weblogic是不是自身性能会更好?
作者回复: 1,看调用栈。 2,什么日志多了都影响性能。 3,没看懂问的是什么。自身性能更好是跟谁比呢?
2020-02-2521 - 信大捷安高老师好,%D 就是请求时间,%F 是响应时间这两个不太明白,可以详细解释一下吗?
作者回复: 这个在官网中是有解释的。 %D - Time taken to process the request, in millis %F - Time taken to commit the response, in millis
2023-03-14归属地:河南 - 追风筝的人我需要说明的是,以下场景均基于以下配置:acceptCount=“10000”。这个值对我们来说,也是非常关键的数据,因为它影响着 KeepAlive 的超时和 connection 的超时。我们在性能分析的时候,会遇到一种情况是,很多应用都用默认超时,而在压力大的时候,会有少量的报错是因为前端的超时已经到了,而后端还没到,因为毕竟后端是后接收到的请求。这就导致了大压力下少量的错误是因为超时配置导致的。
作者回复: 说的对呀。
2021-12-20 - Geek_13df3b高老师,请问执行压测前服务器的内存使用率30%,对服务器持续加压后,内存使用率升到80%,压测结束后,内存使用率一直保持在80%左右,不会将下来。这是正常的吗?该如何排查,请您指导下,感谢了
作者回复: 正常的,你要看一下linux内存原理就会明白了。
2021-08-062 - johnny应该如何拆解监控计数器呢? 根据对性能指标影响程度,最重要的三类计数器为协议、运行模式(用默认的就行)、线程池,线程池下的几个重要的计数器为maxThreads、minSpareThreads、maxSpareThreads、acceptCount。 我们应该如何判断应用服务器的线程是否够用? 可以通过jvisuavlvm工具查看线程是否忙碌来判断。 另外根据“服务端能处理的压力线程必然不会超过自身的线程上限”这句话,从服务器线程是否够用的角度来看,将tomcat的线程数设置为大于或者等于压力机线程数,一般是够用的,但是也要根据硬件资源情况而定,不能盲目增大tomcat线程数,比如将tomcat线程设置为4000。 我的回答正确吗? 我有个问题,老师所说的“计数器”的概念是不是就是指的tomcat的配置参数(acceptCount、maxThreads、minSpareThreads等)呢?
作者回复: 1,压力工具线程数通常和服务端线程数之前要测试才知道哪个应该大,因为代码运行快慢不一定。 2,计数器不是配置参数,而是动态记录数据的值。比如实时堆大小等。
2021-06-23 - 陈诚疑问: 1、设置不同的压力线程,对服务器来讲压力不同,势必响应时间会有不同,这如何判断是代码运行快慢的问题呢? 麻烦老师解疑,谢谢
作者回复: 代码运行快慢不是性能分析的起点。应该先判断系统容量是否达到需求再根据证据链分析代码够不够快。
2021-05-26 - sunny操作系统的CS,CS指的是什么呢
作者回复: context switch,在本专栏的18讲中,有说明。 从这个问题来看,这位同学似乎是跳着看的呀。 哈哈。
2021-05-18