java - 压测tomcat,无法理解其工作机制?
漂亮男人
漂亮男人 2017-07-03 11:43:40
0
1
982

前提:
1.公司进行一台部署有http服务的压测,第一天进行了一晚上(10h)的测试(一次200并发),吞吐量大概56%左右。第二天(期间没有重启过tomcat)也进行了一晚上(10h)测试(一次200并发),吞吐量却降低至16%左右。环境一样,为何落差那么大?
2.我第一天压测1000个并发时,线程数大概是1000+,但是第二天(期间没有重启过tomcat)压测1000并发时,线程数却降到700+,为何之前并发数和线程数成正比,后面却不是了?

上述两个前提,请问tomcat是有什么策略,还是jdbc连接池或者redis连接池导致以上现象吗(使用G1回收机制)?

漂亮男人
漂亮男人

全部回复(1)
阿神

这情况就复杂了,其复杂度取决于你的项目运行环境、依赖哪些其他服务。如果你的压测环境复杂(就是很多人都在你这台服务器上运行自己的东西),那压测结果不稳定是可以预见的。

遇到吞吐量下降时,先判断瓶颈在哪里:

  1. 本机资源是否紧张。本机资源主要包括 CPU、内存、网络带宽和磁盘吞吐。这些都需要进行观测排查。

  2. 依赖服务是否紧张,如数据库、外部接口是否处理时间过长。

  3. 如果这些都无法明显定位问题所在,那就进入程序调试阶段了:在每个请求处理过程中,记录每一步的时长,找出瓶颈在哪一步,这个粒度会很细,会要反复修改日志,反复运行,反复观察,但一定会找到问题。

不要一遇到问题就做没有根据的胡乱猜测,这时候“发散思维”帮不上忙,要做的是对问题顺藤摸瓜,严谨分析。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板