为什么要进行压测
今天,需要给之前部署的一个项目开始分配流量,这个项目之前开发完,一直未有流量流入。在有流量时,应该有几个重点问题的考虑:项目部署的机器数量是否合适?在假设流量一般的情况下,服务是否能不能顶住目前所分配的流量?基于上述的问题,所以考虑到要进行压测。
什么是压测
压测,即压力测试,目的是为了检测系统的稳定性,通常会在系统正常运作范围之外进行,以检测系统的瓶颈和隐患,找出系统的天花板。
压测常见的性能指标分类
从性能测试分析度量的角度来看,主要分为以下几类:
1、系统性能指标
2、资源性能指标
3、数据库指标
4、可靠性指标
5、可扩展性指标
6、稳定性指标
系统性能指标
系统的性能指标主要包括:
- 响应时间
- 系统处理能力
- 吞吐量
- 并发用户数
- 错误率
1.响应时间
响应时间顾名思义,就是一次从客户端发出请求,到服务端回复客户端请求的总时间。其影响用户的直观感受。
2.系统处理能力
系统处理能力是指系统在利用系统硬件平台和系统软件平台进行信息处理的能力。系统处理能力通过系统每秒钟能够处理的交易数量来评价,交易有两种理解:一是业务人员角度的一笔业务过程;二是系统角度的一次交易申请和响应过程。
一般情况下,通过以下几个指标来衡量系统的处理能力:HPS(每秒的点击次数),TPS(系统每秒的处理交易数),QPS(系统每秒的查询次数)。
3.吞吐量
吞吐量是描述系统比较常见的词,其是指系统在单位时间内处理请求的数量。
对于单用户的系统,响应时间可以很好的度量系统的性能,但对于多用户的系统,吞吐量可能会更好的度量系统的性能。
4.并发用户数
其指在同一时间,登陆系统操作的用户数量。
并发用户数对于长连接系统来说最大并发用户数即是系统的并发接入能力。对于短连接系统而言最大并发用户数并不等于系统的并发接入能力,而是与系统架构、系统处理能力等各种情况相关。
5.错误率
错误率就很好理解了,即请求服务是请求失败的概率。通常要求不超过千分之六。
资源性能指标
资源性能指标就是常见观察服务器的一些指标:CPU、内存、磁盘吞吐量、内存吞吐量。
cpu和内存就不解释了。
解释一下磁盘的吞吐量和网络的吞吐量。
磁盘吞吐量:在磁盘无故障时,单位时间内通过磁盘的数据量。磁盘指标主要有每秒读写多少兆,磁盘繁忙率,磁盘队列数,平均服务时间,平均等待时间,空间利用率。其中磁盘繁忙率是直接反映磁盘是否有瓶颈的的重要依据,一般情况下,磁盘繁忙率要低于 70%。
网络吞吐量:和磁盘吞吐量概念相似,也是在网络无故障的条件下,单位时间内通过的网络数据量。
网络吞吐量指标主要有每秒有多少兆流量进出,一般情况下不能超过设备或链路最大传输能力的 70%。
相比其他的性能指标,我个人对这两方面的指标较为生疏,因此记载以学习。