http性能测试

导语:docker

因为咱们公司用户数量庞大,在服务上线以前,性能测试必不可少。本文主要介绍性能测试的流程,须要关注的指标,性能测试工具Apache bench的使用,以及常见的坑。apache

 

什么是性能测试:服务器

性能测试是经过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,二者能够结合进行。经过负载测试,肯定在各类工做负载下系统的性能,目标是测试当负载逐渐增长时,系统各项性能指标的变化状况。压力测试是经过肯定一个系统的瓶颈或者不能接受的性能点,来得到系统能提供的最大服务级别的测试。网络

 

性能测试的图标是什么:异步

性能测试最终的目的,是找到系统的瓶颈,通常来讲,是找到服务单机最大TPS(每秒完成的事务数)。工具

须要注意的是,服务的TPS须要结合请求平均耗时来综合考虑。例如:服务TPS压到1000,平均请求耗时500ms,可是假如咱们定的服务请求耗时不能超过200ms,那么这个1000的TPS是无效的。性能

不少场景下,服务都会设置超时时间,若平均耗时超过此超时时间,则可认为服务处于不可用状态。测试

 

何时须要性能测试:日志

一、功能测试完成以后,上线以前。blog

正常状况下,上线以前,都应该进行性能测试,尤为是请求量较大的接口,重点业务的核心接口,以及直接影响用户操做流程的接口。

二、各类大促,运营活动开始以前。

大促,运营活动,都会致使流量激增,所以上线以前作好压力测试,评估系统性能是否知足预估流量,提早作好准备。

举个反面例子:某品牌电商,年年大促年年挂。

再来个正面的例子:每一年双十一以前,阿里都会有全链路压测,各个业务本身也会有独立的压测,阿里在这块作得仍是很是不错的。

 

怎么作性能测试:

常见的Http性能测试工具:

httpload

 

wrk

 

apache bench

 

最终咱们选择apache benche。

看上去wrk才是最完美的,可是咱们却选择了ab。咱们验证过各类工具请求数据是否准确,压测的时候,经过后台日志记录,最终得出结论,ab的请求数偏差在千分之二左右,而其余两个工具在千分之五左右。

不过不得不说,wrk的确是一款很是优秀的压测工具,采用异步IO模型,能压到很是高的TPS。曾经用空逻辑接口压到过7w的TPS,而相同接口,ab只能压到2w多。

 

apache benche的使用

前面已经给了一个简单的例子了,下面详细介绍下ab的使用。

如何安装?

若是docker容器已经安装的apache,那么恭喜,ab是apache自带的一个组件,不用从新安装了。固然,也能够本身单独安装apache bench。

ab 经常使用参数介绍:

性能测试报告

 

常见的坑

(1)AB发送的是http1.0请求。

 (2)-t能够指定时间,-n指定发送请求总数,同时使用时压测会在-t秒或者发送了-n个请求以后中止。可是-t必定要在-n以前(ab的bug,-n在-t以前最多只会跑5s)。

 (3)为了使测试结果更可靠,单次压测时间应在2分钟以上。

 理论上,压测时间越长,结果偏差越小。同时,能够在瓶颈附近进行长时间压测,例如一个小时或者一天,能够用来测试系统稳定性。许多系统的bug都是在持续压力下才会暴露出来。

 (4)当心压测客户端成为瓶颈。

 例如上传,下载接口的压测,此时压测客户端的网络上行,下行速度都会有瓶颈,千万当心服务器还没到达瓶颈时,客户端先到了瓶颈。此时,能够利用多客户端同时压测。

 (5)ab能够将参数写入文件中,用此种方式能够测试上传文件的接口。

 须要配合-p -t 使用:

 

转载自腾讯移动品质中心TMQ

相关文章
相关标签/搜索