35 | 如何监控Tomcat的性能?
李号双
该思维导图由 AI 生成,仅供参考
专栏上一期我们分析了 JVM GC 的基本原理以及监控和分析工具,今天我们接着来聊如何监控 Tomcat 的各种指标,因为只有我们掌握了这些指标和信息,才能对 Tomcat 内部发生的事情一目了然,让我们明白系统的瓶颈在哪里,进而做出调优的决策。
在今天的文章里,我们首先来看看到底都需要监控 Tomcat 哪些关键指标,接着来具体学习如何通过 JConsole 来监控它们。如果系统没有暴露 JMX 接口,我们还可以通过命令行来查看 Tomcat 的性能指标。
Web 应用的响应时间是我们关注的一个重点,最后我们通过一个实战案例,来看看 Web 应用的下游服务响应时间比较长的情况下,Tomcat 的各项指标是什么样子的。
Tomcat 的关键指标
Tomcat 的关键指标有吞吐量、响应时间、错误数、线程池、CPU 以及 JVM 内存。
我来简单介绍一下这些指标背后的意义。其中前三个指标是我们最关心的业务指标,Tomcat 作为服务器,就是要能够又快有好地处理请求,因此吞吐量要大、响应时间要短,并且错误数要少。
而后面三个指标是跟系统资源有关的,当某个资源出现瓶颈就会影响前面的业务指标,比如线程池中的线程数量不足会影响吞吐量和响应时间;但是线程数太多会耗费大量 CPU,也会影响吞吐量;当内存不足时会触发频繁地 GC,耗费 CPU,最后也会反映到业务指标上来。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
如何监控Tomcat性能指标及问题定位 本文介绍了监控Tomcat性能指标的方法,包括吞吐量、响应时间、错误数、线程池、CPU和JVM内存。通过JConsole和命令行可以监控这些指标。文章还通过实战案例展示了如何通过JMeter和JConsole观察Tomcat的性能指标,并分析线程数、CPU和内存的变化。通过监控和分析这些指标,读者可以快速了解系统的性能瓶颈,并进行调优决策。 在工作中,监控Web应用的健康状态可以通过监控类似的性能指标来实现。遇到性能问题时,可以通过分析吞吐量、响应时间、错误数、线程池、CPU和内存等指标来定位问题。这篇文章提供了实用的方法和案例,帮助读者更好地监控和定位Web应用的性能问题。 通过本文的内容,读者可以学习到如何监控Tomcat的性能指标以及如何通过监控和分析来定位性能问题,对于需要进行Web应用性能监控和调优的技术人员来说,这是一篇非常有价值的文章。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深入拆解 Tomcat & Jetty 》,新⼈⾸单¥68
《深入拆解 Tomcat & Jetty 》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(26)
- 最新
- 精选
- 陆离老师,不是很明白线程sleep时间越长,为什么tomcat启动的线程就越多
作者回复: 这是Tomcat需要从线程池拿出一个工作线程来处理请求,请求处理(休眠)的时间越长,这些线程被阻塞,休眠时间越长,被阻塞的线程越多,这些线程无法被线程池回收,Tomcat线程池不得不创建更多的线程来处理新的请求。
2019-08-01418 - dingdongfm请教一个细节,Timeout 设置为 1000 毫秒,接口延迟4S,那么ERROR不是100%么?
作者回复: 这里是特意这么做的,目的是让Jmeter把流量压上去,因为上一个请求没有返回,Jmeter不会发下一个请求。
2019-09-299 - -W.LI-李老师好。 第二三阶段,有很多TIME_WAIT状态的线程。可是CPU使用率并没有增加很多。老师说CPU使用率和吞吐量有关,吞吐量由JMETER控制一直没变。频繁线程切换会消耗很多CPU支援,如果只是阻塞,切换不频繁。对CPU使用率还是比较小的是么?
作者回复: 对的
2019-08-015 - Geek_ebda96老师请问一下,windows机器上用jconsole工具,不能看到tomcat的进程,是什么原因
作者回复: 嵌入式tomcat进程一般是你的应用程序的名字,独立Tomcat进程你可以找bootstrap关键字
2019-08-133 - 尔冬橙内存泄露的原因是什么呢?代码写的有问题?
作者回复: 对的
2019-08-1632 - Geek_28b75e老师,通过监控工具看到了有哪些线程,但是发现有些线程大部分都在等待,怎么找到这些线程创建位置,进而调整线程池初始化大小?
作者回复: 通过线程栈查看,jstack
2019-08-071 - 许童童使用prometheus + grafana 监控各种指标,每天上班前看一下昨天的情况,设置好阈值,如果达到就报警。2019-08-01128
- nightmare先查看日志,那些方法耗时较大,用阿里爸爸开源arthas监控有问题的方法,排查问题2019-08-01210
- 仙道如果这样类型的内容能够再深入点、再广一点就好了。因为作为普通开发,很难有机会接触到这方面的知识,也无从学起2019-09-279
- Geek_28b75e老师,springboot内嵌tomcat怎么使用jmx?2019-08-0744
收起评论