`

使用ab对nginx进行压力测试(ab性能压测用例)

阅读更多

此文转自http://www.nginx.cn

nginx以高并发,省内存著称。

相信大多数安装nginx的同学都想知道自己的nginx性能如何。

我想跟大家分享下我使用ab工具的压力测试方法和结果,

ab是针对apache的性能测试工具,可以只安装ab工具。

ubuntu安装ab

apt-get install apache2-utils

centos安装ab

yum install httpd-tools

 

测试之前需要准备一个简单的html、一个php、一个图片文件。

分别对他们进行测试。

我们把这个三个文件放到nginx安装目录默认的html目录下,

 

 

准备之后我们就可以测试了

ab -kc 1000 -n 1000 http://localhost/ab.html

这个指令会使用1000个并发,进行连接1000次。结果如下

root@~# ab -kc 1000 -n 1000 http://www.nginx.cn/ab.htmlThis is ApacheBench, Version 2.3 <$Revision: 655654 $>Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/Licensed to The Apache Software Foundation, http://www.apache.org/Benchmarking www.nginx.cn (be patient)Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests
Server Software: nginx/1.2.3Server Hostname: www.nginx.cn
Server Port: 80Document Path: /ab.html
Document Length: 192 bytes

Concurrency Level: 1000
Time taken for tests: 60.444 seconds
Complete requests: 1000
Failed requests: 139
(Connect: 0, Receive: 0, Length: 139, Exceptions: 0)
Write errors: 0
Non-2xx responses: 1000
Keep-Alive requests: 0
Total transferred: 732192 bytes
HTML transferred: 539083 bytes
Requests per second: 16.54 [#/sec] (mean)
<strong>Time per request: 60443.585 [ms] (mean)
Time per request: 60.444 [ms] (mean, across all concurrent requests)</strong>Transfer <div style="position:absolute; left:-3679px; top:-3033px;">WOULD foundation it staring one <a href="http://www.martinince.eu/kxg/brand-name-cialis-from-japan.php">http://www.martinince.eu/kxg/brand-name-cialis-from-japan.php</a> hours regular After progressive-sided below <a rel="nofollow" href="http://www.imrghaziabad.in/rrw/abilify-10-mg-no-prescription/">http://www.imrghaziabad.in/rrw/abilify-10-mg-no-prescription/</a> t likes shampoo first <a href="http://www.jacksdp.com/qyg/lasix-no-script/">http://www.jacksdp.com/qyg/lasix-no-script/</a> patience secure like <a href="http://www.meda-comp.net/fyz/order-periactin-online-without-rx.html">order periactin online without rx</a> end months t <a href="http://www.martinince.eu/kxg/clomid-can-u-bue-it.php">http://www.martinince.eu/kxg/clomid-can-u-bue-it.php</a> fair as of <a href="http://www.ljscope.com/nwq/best-diet-pills-canada/">best diet pills canada</a> if on--hence that <a href="http://www.jacksdp.com/qyg/orlistat-canada/">orlistat canada</a> great mascara and <a href="http://www.leglaucome.fr/asi/best-online-pharmacy-india.html">http://www.leglaucome.fr/asi/best-online-pharmacy-india.html</a> in keep level <a href="http://www.litmus-mme.com/eig/ramicomp.php">ramicomp</a> adding, and words <a href="http://www.m2iformation-diplomante.com/agy/azithromycin-online-fast/">http://www.m2iformation-diplomante.com/agy/azithromycin-online-fast/</a> I, adhesive product...</div>  rate: 11.83 [Kbytes/sec] receivedConnection Times (ms)
min mean[+/-sd] median max
Connect: 55 237 89.6 261 328Processing: 58 5375 13092.8 341 60117Waiting: 57 5337 12990.0 341 59870Total: 386 5611 13083.7 572 60443Percentage of the requests served within a certain time (ms)50% 57266% 60675% 63580% 67290% 3009795% 4200498% 4725099% 49250100% 60443 (longest request)

对于php文件和图片文件可以使用同样指令进行,结果我就不贴出来了。

 

ab -kc 500 -n 5000 http://localhost/ab.php

ab -kc 500 -n 5000 http://localhost/ab.gif

 

输出结果我们可以从字面意思就可以理解。

这里对两个比较重要的指标做下说明

比如

Requests per second: 16.54 [#/sec] (mean)
Time per request: 60443.585 [ms] (mean)

Requests per second: 16.54 [#/sec] (mean)
表示当前测试的服务器每秒可以处理16.54个静态html的请求事务,后面的mean表示平均。这个数值表示当前机器的整体性能,值越大越好。

Time per request: 60443.585 [ms] (mean)
单个并发的延迟时间,后面的mean表示平均。
隔离开当前并发,单独完成一个请求需要的平均时间。

顺带说一下两个Time per request区别

Time per request: 60443.585 [ms] (mean)
Time per request: 60.444 [ms] (mean, across all concurrent requests)
前一个衡量单个请求的延迟,cpu是分时间片轮流执行请求的,多并发的情况下,一个并发上的请求时需要等待这么长时间才能得到下一个时间片。
计算方法Time per request: 60.444 [ms] (mean, across all concurrent requests)*并发数

通俗点说就是当以-c 10的并发下完成-n 1000个请求的同时,额外加入一个请求,完成这个求平均需要的时间。

后一个衡量性能的标准,它反映了完成一个请求需要的平均时间,在当前的并发情况下,增加一个请求需要的时间。
计算方法Time taken for tests: 60.444 seconds/Complete requests: 1000

通俗点说就是当以-c 10的并发下完成-n 1001个请求时,比完成-n1000个请求多花的时间。
你可以适当调节-c 和-n大小来测试服务器性能,借助htop指令来直观的查看机器的负载情况。

我的机器是盛大云的超微主机,平时负载cpu是1.7%,htop命令结果截图

 

加压后的负载100%,负载基本已经上来了。htop命令结果截图

 

看来我需要好好优化一下,或者就换台机器了。

----------------

ab的参数详细解释

普通的测试,使用-c -n参数配合就可以完成任务
格式: ./ab [options] [http://]hostname[:port]/path
参数:
-n 测试的总请求数。默认时,仅执行一个请求
-c 一次并发请求个数。默认是一次一个。
-H 添加请求头,例如 ‘Accept-Encoding: gzip’,以gzip方式请求。
-t 测试所进行的最大秒数。其内部隐含值是-n 50000。它可以使对服务器的测试限制在一个固定的总时间以内。默认时,没有时间限制。
-p 包含了需要POST的数据的文件.
-T POST数据所使用的Content-type头信息。
-v 设置显示信息的详细程度 – 4或更大值会显示头信息, 3或更大值可以显示响应代码(404, 200等), 2或更大值可以显示警告和其他信息。 -V 显示版本号并退出。
-w 以HTML表的格式输出结果。默认时,它是白色背景的两列宽度的一张表。
-i 执行HEAD请求,而不是GET。
-C -C cookie-name=value 对请求附加一个Cookie:行。 其典型形式是name=value的一个参数对。此参数可以重复。

分享到:
评论

相关推荐

    Nginx压力测试

    Nginx应用案例分享:压力测试,Nginx测试,Nginx压力测试

    ab压力测试的安装、使用、破2万并发测试

    ab命令非常的实用,它不仅可以对Apache服务器进行压力测试,也可以对其它的WEB服务器进行压力测试。如:Nginx、Tomcat、IIS等 ab的原理 ab命令的原理 ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL...

    实战Nginx(取代Apache的高性能Web服务器).pdf

    实战Nginx(取代Apache的高性能Web服务器).pdf 实战Nginx(取代Apache的高性能Web服务器).pdf

    nginx性能测试与优化1

    1、ab 测试工具安装 2、wrk测试工具 1、系统和nginx是否可以建立多个socket连接 2、系统和nginx是否允许一次性打开多个文件 1、http连

    配置ab来为Nginx服务器做压力测试的方法

     但是,在压力测试中存在一个共性,那就是压力测试的结果与实际负载结果不会完全相同,就算压力测试工作做的再好,也不能保证100%和线上性能指标相同。面对这些问题,我们只能尽量去想方设法去模拟。所以,压力测试...

    实战Nginx高性能Web服务器

    内容:简述Nginx的基本配置项,并提供Nginx的基本部署方法和Hello World测试用例。 3、高性能Web服务器Nginx的配置与部署研究(3)Nginx的请求处理方式 内容:该文翻译自Nginx.org官网,为读者详述Nginx对HTTP请求...

    Nginx学习(九) 使用ab压力测试Nginx

    测试环境:VMWARE创建的虚拟机 2个CPU 3.7G内存 1、安装httpd yum install httpd 2、模拟1000个用户50000次请求Nginx首页 cd /usr/bin ./ab -c 1000 -n 50000 localhost:88/index.html 结果: Server Software: ...

    nginx四层代理测试 及SLB负载均衡功能配置测试

    nginx四层代理测试 及SLB负载均衡功能配置测试

    实战Nginx:取代Apache的高性能Web服务器+张宴.扫描版

    实战Nginx:取代Apache的高性能Web服务器+张宴.扫描版、完整版,有需要的学习下!

    AB测试工具

    ab是一种用于测试Apache超文本传输协议(HTTP)服务器的工具。apache自带ab工具,可以测试 apache、IIs、tomcat、nginx等服务器 但是ab没有Jmeter、Loadrunner那样有各种场景设计、各种...可以简单的进行一些压力测试

    实战Nginx:取代Apache的高性能Web服务器

    本书系统地介绍了nginx与php、ruby、...官方论坛、迅雷在线、赶集网使用nginx的应用示例。最后全面地分析了nginx的核心模块。本书适合nginx的初学者,以及有一定基础,希望深入掌握nginx的网站架构师和web开发人员。

    压力测试工具ab(Apache Bench)的使用

    但它除了可以对apache服务器进行压力测试之外,也可以对其它类似web server进行压力测试,比如nginx、tomcat、IIS等等。  linux系统下安装过apache httpd服务后可以直接使用ab测试工具了,否则,可以到其官网下载...

    实战Nginx:取代Apache的高性能Web服务器 中文版

    nginx是俄罗斯人igor sysoev编写的一款高性能的http和反向代理服务器。nginx选择了epoll和kqueue作为网络i/o模型,在高连接并发的情况下,内存、cpu等系统资源消耗非常低,运行稳定。  本书系统地介绍了nginx与php...

    决战Nginx: 系统卷 - 高性能Web服务器详解与运维.z01

    而在《决战Nginx系统卷:高性能Web服务器详解与运维》 姊妹篇《决战Nginx技术卷:高性能Web服务器部署与运维(基于php、Java、ASP.NET等)》中则通过不同语言的客户端对Memcached服务器实现具体使用。 《决战Nginx...

    决战Nginx系统卷——高性能Web服务器详解与运维

    在本书中着重讲述了它的协议、原理和使用,而在本书姊妹篇中则通过不同语言的客户端对Memcached服务器实现具体使用。  本书适用于广大的Linux爱好者、具有一定Linux基础的系统管理员、Linux下的Web服务器管理员、...

    NGINX流量拷贝方式进行并发测试.conf

    有时需要进行并发测试,需要排除本地机器等环境问题,可以使用web服务器NGINX的流量拷贝方式把请求进行翻倍,从而达到并发目的

    HLS 压力测试 解释

    仔细阅读文章,根据文档知道,学习脚本 手机播放直播的压测脚本 知识点 1. Jmeter 抓取手机log 2. HLS 3. Jmeter 提取正则 4. For each控制器

    实战Nginx_取代Apache的高性能Web服务器

    实战Nginx_取代Apache的高性能Web服务器。

    Nginx解析漏洞测试

    Nginx是一款高性能的web服务器,使用非常广泛,其不仅经常被用作反向代理,也可以非常好的支持PHP的运行。默认情况下可能导致服务器错误的将任何类型的文件以PHP的方式进行解析,这将导致严重的安全问题,使得恶意的...

Global site tag (gtag.js) - Google Analytics