专栏首页张善友的专栏Apache 压力测试工具ab

Apache 压力测试工具ab

在 Apache 有个叫 ab(ApacheBench) 的程序, 此程序是专门用在做压力测试用的软件. ApacheBench(ab) 用来测试 apache 执行效率,可以用来测试网站的压力工具.

ab 参数

ab 参数:

Usage: /usr/sbin/ab [options] [http[s]://]hostname[:port]/path
Options are:
§ -n requests Number of requests to perform
§ -c concurrency Number of multiple requests to make
§ -t timelimit Seconds to max. wait for responses
§ -p postfile File containg data to POST
§ -T content-type Content-type header for POSTing
§ -v verbosity How much troubleshooting info to print
§ -w Print out results in HTML tables
§ -i Use HEAD instead of GET
§ -x attributes String to insert as table attributes
§ -y attributes String to insert as tr attributes
§ -z attributes String to insert as td or th attributes
§ -C attribute Add cookie, eg. 'Apache=1234' (repeatable)
§ -H attribute Add Arbitrary header line, eg. 'Accept-Encoding: zop'
§ Inserted after all normal header lines. (repeatable)
§ -A attribute Add Basic WWW Authentication, the attributes
§ are a colon separated username and password.
§ -P attribute Add Basic Proxy Authentication, the attributes
§ are a colon separated username and password.
§ -X proxy:port Proxyserver and port number to use
§ -V Print version number and exit
§ -k Use HTTP KeepAlive feature
§ -d Do not show percentiles served table.
§ -S Do not show confidence estimators and warnings.
§ -g filename Output collected data to gnuplot format file.
§ -e filename Output CSV file with percentages served
§ -s Use httpS instead of HTTP (SSL)
§ -h Display usage information (this message)

ab 使用

ab使用范例: 要执行 1000 次的 connection, 20 次的 concurrent (并行, 同时):

语法: ab -n 1000 -c 20 http://localhost/

产生出来的结果. 要注意的是以下几个:

§ Time taken for tests: 总共执行花了多久的时间.(以上 1000 次共多久)

§ Requests per second: 每秒平均可以处理多少个 connection.

下面是一个在Windows Azure虚拟机上做的测试,虚拟机性能不怎么样呀(和这个测试相比 ASP.NET Web Api vs Node.js Benchmark, Take 2)。

Microsoft Windows [Version 6.2.9200]

(c) 2012 Microsoft Corporation. All rights reserved.

D:\runnable\test>ab -n 100000 -c 80 -p test.dat -T 'application/json' http://loc

alhost/

This 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 localhost (be patient)

Completed 10000 requests

Completed 20000 requests

Completed 30000 requests

Completed 40000 requests

Completed 50000 requests

Completed 60000 requests

Completed 70000 requests

Completed 80000 requests

Completed 90000 requests

Completed 100000 requests

Finished 100000 requests

Server Software:        Microsoft-IIS/8.0

Server Hostname:        localhost

Server Port:            80

Document Path:          /

Document Length:        5269 bytes

Concurrency Level:      80

Time taken for tests:   112.004 seconds

Complete requests:      100000

Failed requests:        0

Write errors:           0

Non-2xx responses:      100000

Total transferred:      553000000 bytes

Total POSTed:           62200000

HTML transferred:       526900000 bytes

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

Time per request:       89.603 [ms] (mean)

Time per request:       1.120 [ms] (mean, across all concurrent requests)

Transfer rate:          4821.62 [Kbytes/sec] received

                        542.32 kb/s sent

                        5363.94 kb/s total

Connection Times (ms)

              min  mean[+/-sd] median   max

Connect:        0    0   1.3      0      16

Processing:     0   89  65.5     63     532

Waiting:        0   89  65.5     63     532

Total:          0   89  65.5     63     532

Percentage of the requests served within a certain time (ms)

  50%     63

  66%     78

  75%     94

  80%     94

  90%    141

  95%    235

  98%    344

  99%    407

 100%    532 (longest request)

相关文章 :

Apache自带的压力测试工具——ab初体验

ASP.NET Web Api vs Node.js Benchmark, Take 2

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ScintillaNET 需要帮助

    Scintilla是一个免费的源代码编辑控件,它完全开放源代码,并且提供一个license允许用户自由地将它用在开源软件或是商业软件中。作为源代码编辑控件,我...

    张善友
  • 如何在程序中加入Growl通知

    Growl for Windows – Mac 样式的信息提示工具。目前已经支持的软件包括:Outlook,Visual Studio 等以及一个利用命令行从本...

    张善友
  • Quartz.NET 1.0正式发布

    Quartz.NET 项目在Marko Lahma的领导下,经历了2年多时间的开发,bug修复和新特性开发终于发布了1.0版本,这个版本对Quartz.NET来...

    张善友
  • Qt官方示例-使用布局

      通常,子窗口小部件使用布局对象而不是通过显式指定位置和大小来安排在窗口内。在这里,我们构造了一个QLabel和QLineEdit控件并使用QHBoxLayo...

    Qt君
  • 什么是BOM

    BOM(Browser Object Model)即浏览器对象模型,它提供了独立于内容而与浏览器窗口进行交互的对象,其核心对象是 window。

    清出于兰
  • 3年成为4A策略总结,5年成为4A合伙人的成长18条经验

    很早认识ABin,他在我的小密圈里面,期待与你交流。 之前ABin分享了这篇文章在群里,我看了很受启发,无论是从努力的方向、方法,还是提高公司和项目运营的效率上...

    沉默的白面书生
  • 不知道怎么提高代码复用性?看看这几种设计模式吧!

    想必大家都听说过DRY原则,其实就是Don't repeat yourself(不要重复你自己),意思就是不要重复写一样的代码,换句话说就是要提高代码的复用性。...

    蒋鹏飞
  • JAVA浮点数看这一篇就够了

    涉及诸如float或者double这两种浮点型数据的处理时,偶尔总会有一些怪怪的现象,不知道大家注意过没,举几个常见的栗子:

    traffic
  • How to find where settype DB table COMM_PRMAT is accessed without debugging

    We know settype table COMM_PRMAT is used to store attribute data modelled in pro...

    Jerry Wang
  • js this问题和es6箭头函数this问题

    4.apply 调用 ,apply方法作用是改变函数的调用对象,此方法的第一个参数为改变后调用这个函数的对象,this指代第一个参数

    yaphetsfang

扫码关注云+社区

领取腾讯云代金券