女主宣言

对于写程序的码农来说,每天完成不同功能和接口是再正常不过的事情。但当程序正常运行的时候,你是否考虑过系统的性能如何,可靠性怎么样,稳定性是否好呢?往往这些决定了不同小码农之间的差距。尽管很多测试工作可以交给专业的测试MM们,但有些工具,方便快捷,小码农们可以信手拈来。提前测测、改善。下面我们就一起来看看如何一招学会压测。

 

1什么是压测

 

压力测试,就是测试系统的负荷。对于一个系统或者功能,有大批量访问时,是否能承受得住。系统的瓶颈在哪?什么情况下,系统的响应会延迟或者失败。这些对于一个系统或者功能来说,至关重要。进行普通的压力测试确相当简单,有时候我们往往只关心服务器的处理性能,并不需要过多的考虑网络传输时间。

 

Apache自带了一个小工具ab,全称是ApacheBench,它是一个很好用的压力测试工具,只需在服务器本地发起测试请求就可以。安装完apache的时候,就可以在bin下面找到ab。有了它就可以轻松进行并发的模拟请求。

 

2如何使用ab

 

ab的使用格式,./ab  [options]  url   

 

第一部分是命令,第二部分是参数。第三部分是要访问的url 。ab提供了很多参数可以选择。但是一般情况下,两个参数-c -n就基本可以满足。

其中-c concurrency 并发数,就是一次产生的请求个数。默认是一次一个。

-n requests 请求的总数,在测试中所执行总的请求个数。默认仅执行一个请求。

 

举个简单的例子:

 

比如我想对url: www.test.cn 进行压力测试。

 

只需在服务器上执行命令 ./ab -n 100 -c 10 www.test.cn,这样就是启动ab,并对www.test.cn发送100次请求,每次发送10个请求。

 

然后就可以根据返回结果进行分析比较了。

 

3结果分析

 

返回的结果包括版本信息、请求的信息等很详细的信息。其中有三个比较重要的信息。

 

//平均每秒的请求数

Requests per second: 3.09 [#/sec] (mean)

 

//所有并发用户都请求一次的平均时间

Time per request: 24.701 [ms] (mean)      

 

//平均每秒网络上的流量

Transfer rate: 4898.81 [Kbytes/sec] received       

 

4注意事项

 

1.使用ab命令在进行测试时,一般并发不能超过1024个,因为系统限制每个进程打开的最大数为1024,可以用ulimit -a来查看。

2.使用ab命令时,可以指定最大请求数-n,但是不能超过50000。

 

5小结

 

只需要一条命令就可以搞定压力测试。不过这里只介绍了最基本最常用的使用情况,其他命令参数和结果返回参数信息具体使用时,可以参照帮助信息。另外,ab测试工具不仅试用于apache,同样试用于nginx。当你在apache和nginx中抉择时,通过ab测试还可以帮助你对比测试,选择合适的服务器。

 

 

一招学会压测_服务器