服务压测发现怪异现象,一顿排查,揪出“TIME_WAIT”这个内鬼
最近有同事在用 ab 进行服务压测,到 QPS 瓶颈后怀疑是起压机的问题,来跟我借测试机,于是我就趁机分析了一波起压机可能成为压测瓶颈的可能,除了网络 I/O、机器性能外,还考虑到了网络协议的问题。当然本文的主角并不是压测,后来分析证明同事果然还是想多了,瓶颈是在服务端。
Java 应用压测性能问题定位经验分享
ApacheBench 是 Apache 服务器自带的一个 web 压力测试工具,简称 ab。给反馈的信息是 SQL 执行时间、CPU 和内存使用一切正常,客户打了一份线程转储文件,发现大多数线程都卡在了使用 RedissionLock 的分布式锁上面,如图 30 所示,后经查是客户没有合理使用分布式锁导致的问题,解决后,TPS 翻了 20 倍。