服务器压力测试

Posted kxm2niu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了服务器压力测试相关的知识,希望对你有一定的参考价值。

一、【ab】 

解释:

ab就是Apache Benchmark的缩写,顾名思义它是Apache组织开发的一款web压力测试工具,优点是使用方便,统计功能强大。只要我们安装了Apache,就能够在Apache的安装目录中找到它。

用法:

1.找到apache/bin位置,用命令面板打开,如图:

技术图片

 

 

2.执行ab命令 ,ab一般常用参数就是 -n, -t ,和 -c ,一般-t或者-n选一个用。

-n即requests,用于指定压力测试总共的执行次数。

-c即concurrency,用于指定压力测试的并发数。

-t即timelimit,等待响应的最大时间(单位:秒)。

(其它参数请参考官网文档:http://httpd.apache.org/docs/2.0/programs/ab.html

 

例:

 ab -n 1000 -c 1000 http://www.baidu.com/ 

-n 1000  即:总共执行1000次

-c 1000  即:每次并发1000

http://www.baidu.com/  即:需要进行压力测试的url 

【注意 url末尾一定要带‘/’,否则出现 下图情况 】

技术图片

 

 

3.测试结果

运行dos命令:

 ab -n 1000 -c 1000 http://a.cn/ 

结果分析:

服务器信息:采用nginx服务器,域名是a.cn,端口号80端口。

Server Software: nginx (服务器软件名称及版本信息)
Server Hostname: a.cn  (服务器主机名)
Server Port: 80 (服务器端口)

Document Path: / (供测试的URL路径)

Document Length: 162 bytes (供测试的URL返回的文档大小)

重要指标:

Concurrency Level: 1000(并发数)
Time taken for tests: 47.056 seconds (压力测试消耗的总时间)
Complete requests: 1000 (压力测试的总次数)
Failed requests: 0 (失败的请求数)
Non-2xx responses: 1000 (网络连接写入错误数)
Total transferred: 342000 (传输的总数据量)
bytes html transferred: 162000 (HTML文档的总数据量)
bytes Requests per second: 21.25 [#/sec] (mean) (平均每秒的请求数,即吞吐率) 【关注重点】
---------------------------------------------------------------------------------------------------------------------------------------
服务器并发处理能力的量化描述,单位是reqs/s,指的是在某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。

 记住:吞吐率是基于并发用户数的。这句话代表了两个含义:

 a、吞吐率和并发用户数相关

 b、不同的并发用户数下,吞吐率一般是不同的

 计算公式:总请求数/处理完成这些请求数所花费的时间,即

 Request per second=Complete requests/Time taken for tests

必须要说明的是,这个数值表示当前机器的整体性能,值越大越好。
----------------------------------------------------------------------------------------------------------------------------------------
Time per request: 47055.692 [ms] (mean) (所有并发用户(这里是1000)都请求一次的平均时间)【关注重点】
Time per request: 47.056 [ms] (mean, across all concurrent requests) (单个用户请求一次的平均时间)【关注重点】
Transfer rate: 7.10 [Kbytes/sec] received (传输速率,单位:KB/s。可以帮助排除是否存在网络流量过大导致响应时间延长的问题)

每个请求处理时间的分布情况,50%的处理时间在51268ms内,66%的处理时间在31168ms内...,重要的是看90%的处理时间:

Percentage of the requests served within a certain time (ms)
50% 25068
66% 31168
75% 37573
80% 39440
90% 43210
95% 45109
98% 46236
99% 46607
100% 46970 (longest request)

 

以上是关于服务器压力测试的主要内容,如果未能解决你的问题,请参考以下文章

Apache ab 压力并发测试工具

Apache ab 压力并发测试工具

Nginx防压力测试

postman接口测试和压力测试

网站服务器如何做访问压力测试?

怎样测试服务器压力