使用apacheBench对网站进行压力测试(ab压力测试)

news/2024/5/8 15:40:42/文章来源:https://blog.csdn.net/risingsun001/article/details/24267115

 ApacheBench 简称ab, 是 Apache 附带的一个小工具 , 专门用测试网站服务器的运行想能,特别是针对Apache网站服务器的效能分析。专门用于 HTTP Server 的 benchmark testing , 可以同时模拟多个并发请求。

windows下在安装完apache的时候,就可以在bin下面找到ab

linux一般会安装在/usr/bin目录下,一般安装完apache后就有了。

在windows下显示如下:



1、ab经常使用命令:ab -c 20 -n 1000 http://www.imudges.com/
-c:并发数
-n:总请求数

2、结果显示

我们再windows下测试http://www.imudges.com/

This is ApacheBench, Version 2.3 <$Revision: 1528965 $> 

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensed to The Apache Software Foundation, http://www.apache.org/

 

Benchmarking http://www.imudges.com/ (be patient).....done

 

Server Software:        GWS/2.1

Server Hostname:       www.imudges.com

Server Port:            80

 

Document Path:          /

Document Length:        11648 bytes

 

Concurrency Level:      10

/* 整个测试持续的时间 * /

Time taken for tests:    0.711 seconds

/* 完成的请求数量 */

Complete requests:      10

/* 失败的请求数量 */

Failed requests:        0

Write errors:           0

Non-2xx responses:      10

Keep-Alive requests:    10

/* 整个场景中的网络传输量 */

Total transferred:      6020 bytes

/* 整个场景中的 HTML 内容传输量 */

HTML transferred:       2300 bytes

/* 大家最关心的指标之一,相当于 LR 中的 每秒事务数 ,后面括号中的 mean 表示这是一个平均值 */

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

/* 大家最关心的指标之二,相当于 LR 中的 平均事务响应时间 ,后面括号中的 mean 表示这是一个平均值 */

Time per request:       3234.651 [ms] (mean)

/* 这个还不知道是什么意思,有知道的朋友请留言,谢谢 ^_^ */

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

/* 平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题 */

Transfer rate:          1.55 [Kbytes/sec] received

/* 网络上消耗的时间的分解,各项数据的具体算法还不是很清楚 */

Connection Times (ms)

              min  mean[+/-sd] median   max

Connect:       20  318 926.1     30    2954

Processing:    40 2160 1462.0   3034    3154

Waiting:       40 2160 1462.0   3034    3154

Total:         60 2479 1276.4   3064    3184

 

/* 下面的内容为整个场景中所有请求的响应情况。在场景中每个请求都有一个响应时间,其中 50  的用户响应时间小于 3064 毫秒, 60  的用户响应时间小于 3094 毫秒,最大的响应时间小于 3184 毫秒 */

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

  50%   3064

  66%   3094

  75%   3124

  80%   3154

  90%   3184

  95%   3184

  98%   3184

  99%   3184

  100%   3184 (longest request)

 

3、在测试过程中会出现以下这些错误

1)
ab并发数不能大于请求数,会提示

ab: Cannot use concurrency level greater than total number of requests

2)
请求数默认不能超过1024个,会提示

socket: Too many open files (24)

可用ulimit -n命令修改,例如:ulimit -n 8192 (设置用户可以同时打开的最大文件数)。

3)
并发数默认不能大于20000个,会提示

ab: Invalid Concurrency [Range 0..20000]

需要修改apache源代码support目录下ab.c文件,找到:
#define MAX_CONCURRENCY 20000
将宏定义的值改大,重新编译安装apache。

4)
提示

apr_socket_recv: Connection reset by peer (104)

网上说是apr-util有些问题,不太稳定,多试几次就好了。

更多信息

ab 不像 LR 那么强大,但是它足够轻便,如果只是在开发过程中想检查一下某个模块的响应情况,或者做一些场景比较简单的测试, ab 还是一个不错的选择——至少不用花费很多时间去学习 LR 那些复杂的功能,就更别说那 License 的价格了。

下面是 ab 的详细参数解释,大家有兴趣的可以研究一下,最近没有足够多的时间研究,如果哪位朋友有兴趣希望可以帮忙翻译一下每个参数的含义,有问题讨论也欢迎在这里回帖 ^_^

ab [ - A auth-username : password ] [ - c concurrency ] [ - C cookie-name = value ] [ - d ] [ - ecsv-file ] [ - g gnuplot-file ] [ - h ] [ - H custom-header ] [ - i ] [ - k ] [ - n requests ] [ - pPOST-file ] [ - P proxy-auth-username : password ] [ - q ] [ - s ] [ - S ] [ - t timelimit ] [ - Tcontent-type ] [ - v verbosity ] [ - V ] [ - w ] [ - x <table>-attributes ] [ - X proxy [: port ] ] [ - y<tr>-attributes ] [ - z <td>-attributes ] [http://] hostname [: port ]/ path

 

-A auth-username : password

Supply BASIC Authentication credentials to the server. The username and password are separated by a single : and sent on the wire base64 encoded. The string is sent regardless of whether the server needs it (i.e. , has sent an 401 authentication needed).

-c concurrency

Number of multiple requests to perform at a time. Default is one request at a time.

-C cookie-name = value

Add a Cookie: line to the request. The argument is typically in the form of a name = value pair. This field is repeatable.

-d

Do not display the "percentage served within XX [ms] table". (legacy support).

-e csv-file

Write a Comma separated value (CSV) file which contains for each percentage (from 1% to 100%) the time (in milliseconds) it took to serve that percentage of the requests. This is usually more useful than the 'gnuplot' file; as the results are already 'binned'.

-g gnuplot-file

Write all measured values out as a 'gnuplot' or TSV (Tab separate values) file. This file can easily be imported into packages like Gnuplot, IDL, Mathematica, Igor or even Excel. The labels are on the first line of the file.

-h

Display usage information.

-H custom-header

Append extra headers to the request. The argument is typically in the form of a valid header line, containing a colon-separated field-value pair (i.e. , "Accept-Encoding: zip/zop;8bit" ).

-i

Do HEAD requests instead of GET .

-k

Enable the HTTP KeepAlive feature, i.e. , perform multiple requests within one HTTP session. Default is no KeepAlive.

-n requests

Number of requests to perform for the benchmarking session. The default is to just perform a single request which usually leads to non-representative benchmarking results.

-p POST-file

File containing data to POST.

-P proxy-auth-username : password

Supply BASIC Authentication credentials to a proxy en-route. The username and password are separated by a single : and sent on the wire base64 encoded. The string is sent regardless of whether the proxy needs it (i.e. , has sent an 407 proxy authentication needed).

-q

When processing more than 150 requests, ab outputs a progress count on stderr every 10% or 100 requests or so. The -q flag will suppress these messages.

-s

When compiled in ( ab -h will show you) use the SSL protected https rather than the http protocol. This feature is experimental and very rudimentary. You probably do not want to use it.

-S

Do not display the median and standard deviation values, nor display the warning/error messages when the average and median are more than one or two times the standard deviation apart. And default to the min/avg/max values. (legacy support).

-t timelimit

Maximum number of seconds to spend for benchmarking. This implies a -n 50000 internally. Use this to benchmark the server within a fixed total amount of time. Per default there is no timelimit.

-T content-type

Content-type header to use for POST data.

-v verbosity

Set verbosity level - 4 and above prints information on headers, 3 and above prints response codes (404, 200, etc.), 2 and above prints warnings and info.

-V

Display version number and exit.

-w

Print out results in HTML tables. Default table is two columns wide, with a white background.

-x <table>-attributes

String to use as attributes for <table> . Attributes are inserted <table here > .

-X proxy [: port ]

Use a proxy server for the requests.

-y <tr>-attributes

String to use as attributes for <tr> .

-z <td>-attributes

String to use as attributes for <td>


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_803086.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SEO优化如何让提高收录量

相信在做SEO优化的网络人员来说&#xff0c;最高兴的时候就是看见自己辛苦打出来的文章被收录了。可是&#xff0c;收录量就有点。。。。今天&#xff0c;我就来教教大家怎么提高收录量&#xff0c;主要分四个方面。 1、收录网站的时间间隔网站的重点是网站页面收录之间的时间间…

如何将网站的php版本信息隐藏起来

当我们把网站上线之后,我们可以通过curl的如下命令显示指定网站的头信息,curl的安装方法参考:https://www.wj0511.com/site/detail.html?id105 curl -I https://www.wj0511.com 如&#xff1a; 这时候可以看到如下信息 X-Powered-By: PHP/7.0.21 这样我们可以看到我们可以…

百度商桥放在php网站哪里_教你如何做好百度竞价推广

如何做好百度推广?这是每个百度客户在加入百度推广后必然想到的一个问题&#xff0c;也是每个实施顾问所困惑的问题。究竟我们可以通过哪些方法达到客户的预期&#xff0c;使客户与百度长久稳定的合作呢?小编给大家分享一下下面是一些优化账户的方法&#xff0c;供大家参考:首…

mysql学习文档_「mysql学习」MySQL学习文档 - seo实验室

mysql学习基础知识1 创建表CREATE TABLE tablename (name1 CHAR(100),name2 NUMERIC,name3 INT);2 向表中按行插入数据INSERT INTO tablename(name1,name2,name3) VALUES(value1,value2,value3);插入多行INSERT INTO tablename(name1,name2,name3) VALUES(value1,value2,value3…

资源网站

文章目录shell教程》](https://www.runoob.com/linux/linux-system-boot.html)![在这里插入图片描述Arduino学习》电子书下载》 shell教程》 Arduino学习》 电子书下载》

php网站友链直显代码,友情链接代码有哪些 怎么写

友情链接版块在大多数网站的底部都会有这块信息展示&#xff0c;少部分博客会在右下角显示友情链接&#xff0c;通常用于与别人的合作或者互相连接&#xff0c;达到引流、引蜘蛛的目的。那么友情链接代码是怎样的呢&#xff1f;href"url"&#xff0c;url对应的是网站…

网站常用小图标

转载于:https://blog.51cto.com/181796968/42304

浏览器显示“您与此网站之间建立的连接不安全”的解决方案

现在很多网站打开的时候发现浏览器地址栏多了一个小的信息提示&#xff0c;点开看&#xff0c;谷歌的Chrome浏览器会提示“您与此网站之间建立的连接不安全”&#xff0c;火狐的firefox浏览器会提示“您与此网站之间建立的连接不安全”。 这种一般是什么原因导致的呢&#xff1…

适用于编程开发自学的学习网站

今天为大家分享几个编程开发自学的学习网站 1.C语言网 该网站有很多C语言相关的教程、资源、博客和练手习题&#xff0c;同时也有很多题库和比赛&#xff0c;比较实用。 网址&#xff1a;https://www.dotcpp.com/ 2.cppreference cppreference是一个免费网站&#xff0c;上面…

免费电子书下载网站,不来白嫖一波

作为开发者&#xff0c;多多少少都会看些技术书籍&#xff0c;许多经典的技术书籍作者都是国外的&#xff0c;等到中文翻译版出来很多书籍可能已经不适用了&#xff0c;购买原版书籍&#xff0c;价格又太高&#xff0c;因此知道一些免费的图书下载网站是非常重要的&#xff0c;…

分享一波学习编程刷题网站

相信很多小伙伴在学习了基础知识后并不清楚自己到底掌握了多少知识&#xff0c;也不清楚自己的实力&#xff0c;那这时候就需要做题来检验自己了&#xff0c;这里我就给各位推荐3个刷题网站&#xff0c;供各位大佬参考&#xff0c;互相学习 1.牛客网 网址&#xff1a;https://…

Quick Tip : 为什么不能在子网站创建自定义权限级别?

在SharePoint 2010中&#xff0c;如果一个子网站是继承其父网站的权限&#xff0c;那么从网站设置中打开网站权限页面&#xff0c;你会看到&#xff1a; 点击Ribbon区域的“停止继承权限”&#xff0c;管理员就可以断掉当前网站与父网站的权限继承&#xff0c;自定义网站的权限…

华为ensp实验案列推荐,这是我发现实验案列最多的一个网站,不看就亏大了

话不多说&#xff0c;先上图 没错&#xff0c;就是程序员大本营&#xff0c;本人这几天一直在寻找大量华为ensp的实验案列进行训练&#xff0c;一直没有找到太多&#xff0c;也不全&#xff0c;终于在今天让我找到了&#xff0c;这里面从ensp的安装到各种实验都有&#xff0c;想…

网站架构之缓存应用(1)概念篇

网站缓存这个话题并不新颖&#xff0c;但是能否将它用好&#xff0c;可是一门学问&#xff0c;同一件工具在不同人的手中会做出不同的事情来。这里我来分享总结下我对于网站架构中缓存应用的一些看法和经验&#xff0c;大家有好的想法可以补充。 第一&#xff1a;缓存…

分享一个国内的网站-有了它你还用新浪微博吗

最近从一个介绍WEB2.0的网站看到这样一篇介绍&#xff0c;有这样一个网站&#xff0c;提供随时随地的日记记录功能。 久久日记&#xff0c;一个基于移动终端的功能软件。 为用户提供了一个方便记录下自己碎碎念的日记本服务&#xff0c;在这里&#xff0c;用户对生活的感悟可以…

200佳优秀的国外创意设计网站推荐【全集】

您可能还喜欢 寻找网页设计灵感的27个最佳网站推荐最新30个漂亮的个人作品集网页设计案例分享35个非常漂亮的单页网站设计案例60佳灵感来自大自然的网页设计作品欣赏分享100佳精美的作品集网站设计案例这个系列将向大家200佳非常棒的国外设计网站&#xff0c;包括网页设计、名片…

Asp.Net知识锦分享,徐汇区网站设计

导读&#xff1a;作者Alexis对Web方面颇多兴趣&#xff0c;业余时间自学Silverlight、WPF、HTML5&#xff0c;时而做些小东西聊以自足。他总结了一篇.NET的文章《Asp.Net知识锦分享》&#xff0c;以下是文章内容&#xff1a; 今天是春节的最后一篇博客了&#xff0c;在这里给大…

PyType_Type和PyBaseObject_Type

PyType_Type和PyBaseObject_Type一. 类型的类型—PyType_Tpye(type的实体)二. 类型之基—PyBaseObject_Type(object的实体)PyObject和PyTypeObject内容的最后指出下图中对实例对象和类型对象的理解是不完全正确的&#xff0c; 浮点类型对象全局唯一&#xff0c;Python在C语言层…

开源免费cms---十大主流建站的CMS系统介绍

开源免费cms建站系统哪个好&#xff08;十大主流建站的CMS系统介绍&#xff09; 动易 CMS&#xff0c;博客系统 drupal 不适合中国的企业网站建设。 joomla&#xff01; drupal适合程序员级别的人使用&#xff0c;方便做二次开发&#xff0c;可以做出任何你想要的网站&#…

网页编码_怎样查询HS编码?这个功能强大的网站一定要收藏!

说起HS编码&#xff0c;相信大家都不会陌生&#xff0c;它就是海关编码。是一部供海关、统计、进出口管理及与国际贸易有关各方共同使用的商品分类编码体系。HS编码对于从事进出口业务的企业来说&#xff0c;是入门基础&#xff0c;它可以帮助大家更快速地分类商品。大家该如何…