一.定义:
benchmark译为基准测试,基准测试是指通过设计科学的测试方法、测试工具和测试系统,实现对一类测试对象的某项性能指标进行定量的和可对比的测试。
二.基准的特征:
相关性:基准应该度量相对重要的特性。
代表性:基准性能度量应该被工业界和学术界广泛接受。
公平:所有的系统都应该进行公平的比较。
可重复性:基准测试结果可以被验证。
成本效益:基准测试是经济的。
可伸缩性:基准测试应该在拥有从低到高的一系列资源的系统上工作。
透明度:基准度量应该易于理解。
三.基准测试的性能指标:
1 QPS/TPS:
QPS是我们的每秒查询数量,TPS是每秒的事务数量。通常我们进行基准测试往往会定一个目标,比如支撑1000QPS的请求量来完成我们的目标,或者测试出我们这个系统极限的QPS是多少,同样的QPS也不是越大越好,也需要结合我们的响应时间,如果我们一味的追求QPS忽略了响应时间那么用户的体验也是极差的。
2 TP99/TP95:
有很多认为响应时间应该看平均时间,如果写要求比较低的系统的确是可以看平均时间,这样就会导致很多用户响应的速度很慢,但是我们在监控指标上体现不出来,所以就有了百分位指标这样的概念,TP99的意思就是,取排名排到第99百分位的响应时间,即排除了一些异常的情况(剩余的那1%),又保证了大多数用户的响应时间。
3 CPU:
当我们有很多CPU密集型应用的时候,可以多多关注CPU的情况,从而进行针对性的调优
4 GC:
如果是Java的应用,GC问题绝对不会缺席,尤其是在我们基准测试中,往往如果在测试中出现了大量的GC,说不定是代码写得有问题,有时候可以通过代码进行优化,或者说也可以更换GC收集器。
5 io:
当我们传输的数据比较多的时候,比如传输文件,或者一些大的数据结构,这个时候就需要关注I/O相关的问题,来进行针对的调优。
来源:聊聊基准测试 - 云+社区 - 腾讯云 (tencent.com)
四.测试工具:
来源: 几款优秀的Linux基准测试工具 - sophiascpn - 博客园 (cnblogs.com)
五.用途:
1.测量和评估软件性能指标的活动。你可以在某个时候通过基准测试建立一个已知的性能水平(称为基准线),当系统的软硬件环境发生变化之后再进行一次基准测试以确定那些变化对性能的影响。
2.测定某种负载水平下的性能极限、管理系统或环境的变化、发现可能导致性能问题的条件等。
(小白,如有纰漏,还望指正)