我们一般都在讲服务应该具备高性能,然而什么是高性能,怎么判断,怎么认知呢。下面站在开发人员的视角分享一下性能测试的指标枚举。
响应时间
这个往往描述的是执行一次请求,从发出到返回响应数据所需要的时间。它也是最为直观的反映系统的“快慢”指标。
并发数
指的是系统能同时处理请求的数据,对于网站或终端应用而言并发数即网站并发用户数,指的是同时提交请求的数目。
这里要注意一个问题,每一个应用都有一个最大负载值,如果不当的活动推广导致并发数超过这个最大负载,容易导致应用负载过高甚至崩溃,给服务造成极大压力。
吞吐量
指的是单位时间内系统处理请求的数量,体现的是系统的整体处理能力。有几个指标比如QPS、TPS。
QPS:每秒查询数
TPS:每秒事务数
这个指标往往随着并发数的提高,先是逐渐上升,到达系统的最大负载点(上图的c点)后,随后随着并发数上升会逐渐下降,直到到达上图的d点,也就是系统的奔溃点,超过这个点后并发数再增大,系统不能处理任何请求。
性能计数器
描述服务器或OS的一些数据指标。包括System Load、对象与线程数、内存使用、CPU使用、磁盘与网络I/O等指标。这些指标也是一些APM监控工具监控的时候需要关注的点,出现超过阈值,就需要发送告警(钉钉、企业微信、邮件)等给到开发人员进行预警。
这里讲解一下System Load指标。操作系统执行uptime后
14:14 up 25 days, 22:09, 3 users, load averages: 1.96 2.38 3.19
14:14指的是系统当前时间
25 days指的是系统已经运行了多长时间
3 users:目前有多少登陆用户
load averages(平均负载):分别指的是 最近1分钟、10分钟、15分钟的运行队列平均进程数。
理想值是=CPU的数目。当低于CPU数表示CPU有空闲,存在资源浪费。
当高于CPU核数说明进程在排队等待CPU调度,表示系统资源不足