接上一篇 TPS 调优之 tomcat 线程池优化
优化结果是将 TPS 提升到了 1000 左右,但是感觉不大满意,还有继续优化的空间
arthas工具
arthas 是阿里的一款开源工具,用来深层次的排查服务器线程问题,方便好用。下面介绍两个简单的命令
thread | grep BLOCKED
这条命令可以快速排查出blocked,也就是阻塞的线程,并统计。如下图
thread -b
这条命令可以打印出阻塞线程的日志,并迅速指出阻塞的原因
从上面两张图可以看出,线程总数最多只有 224,有 79 个线程都阻塞了,原因出在了日志输出上。到配置文件里面看一下日志的输出模式
默认输出模式是 info,可以把它改成 error。然后重启项目再测试一下 tps
执行结果如下,此时 400 的负载量下 tps 最高能达到 2400 左右。
把负载量加到 600,再测试一下,看看 tps 有没有上升空间
TPS 最大在 2400 和 2600 之间徘徊。
后续还有没有优化空间?有待继续观察