首先,简单介绍一下,性能测试平台P-One。
PerformanceOne(简称:P-One)是泽众软件自主研发的一套一站式性能测试平台软件产品。
该产品采用 B/S 架构开发,实现了集管理、设计、压测、监控以及分析于一体的全方位性能测试解决方案。可有效提升性能测试技术能力,提高效率,降低门槛,减少性能测试的投入,同时提升软件产品质量。适用于各种非功能测试场景,如压力测试、负载测试、稳定性测试、可靠性测试、容量测试等。
P-One性能测试平台
P-One平台主界面
随着应用系统节点越来越多,越来越复杂,当出现任何一个节点的故障、异常,都会出现严重的性能问题。同时,当一个节点发生问题,给问题定位带来了很大的困难:我们往往只知道出现了性能问题,如tps达不到要求,大量交易失败,但是我们不知道问题在哪个节点上,也不知道出问题的节点,问题的原因是什么。
从本质上来看,我们需要解决两个问题:第一,定位问题节点;第二,找到问题原因。
关于第一个问题,定位问题节点,我们推荐采用的方法就是全链路的时间片分析法。那么,什么是时间片分析法?
全链路的时间片分析法
如上图,当出现某个交易异常,我们很难发现问题缩在。
使用POne的全链路分析,可以很容易的解决这个问题:
1、使用全链路,来找到出现异常的交易链路,如上图颜色标识;
2、全链路分析工具,可以展示,在这个链路上,各个节点消耗的时间片:
节点消耗统计
3、根据异常的时间片,可以定位问题节点。
从上面的表格数据,我们可以看到,
1)nginx服务,总共消耗了20毫秒(ms),在这个交易中,这个节点出发的链路,消耗了10s的时长,一般情况下就是异常交易;
2)微服务1,本身消耗了30ms,这个节点发起的链路,消耗了9970ms,也就是20ms被nginx消耗了,还有10ms被网络消耗(假设是网络消耗了10ms);
3)微服务2,本身消耗了30ms,看起来也是正常的,它和它的下面链路,总共消耗9930ms;
4)Database server,总共消耗的时长数是9890,将近10秒了!!!
5)我们可以基本上认为,问题节点就是数据库服务。
POne的全链路分析图:
链路分析(一)
链路分析(二)
节点详细查看
链路展示与统计(一)
链路展示与统计(二)
链路展示与统计(三)
4、查看可能问题节点的计数器,来定位问题:
nginx监控服务
Redis监控服务
JVM进程监控服务
MYSQL慢日志监控服务