乐虎游戏|乐虎国际登录|欢迎你

使用ab压力命令测试网站性能

日期:2019-10-30编辑作者:计算机资讯

网站性能压力测试是性能调优过程中必不可少的一环。只有让服务器处在高压情况下才能真正体现出各种设置所暴露的问题。Apache中有个自带的,名为ab的程序,可以对Apache或其它类型的服务器进行网站访问压力测试。

背景:网站性能压力测试是性能调优过程中必不可少的一环。服务器负载太大而影响程序效率是很常见的事情,一个网站到底能够承受多大的用户访问量经常是我们最关心的问题。因此,只有让服务器处在高压情况下才能真正体现出各个环节所暴露的问题。Apache中有个自带的,名为ab的程序,可以对Apache或其它类型的服务器进行网站访问压力测试。

ApacheBench命令原理:
ab命令会创建很多的并发访问线程,模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的,因此,既可以用来测试Apache的负载压力,也可以测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力。ab命令对发出负载的计算机要求很低,既不会占用很高CPU,也不会占用很多内存,但却会给目标服务器造成巨大的负载,其原理类似CC攻击。自己测试使用也须注意,否则一次上太多的负载,可能造成目标服务器因资源耗完,严重时甚至导致死机。

一、AB工具介绍:

格式:# ab [options] [
参数说明:
-n requests Number of requests to perform
乐虎国际登录,//在测试会话中所执行的请求个数(本次测试总共要访问页面的次数)。默认时,仅执行一个请求。
-c concurrency Number of multiple requests to make
//一次产生的请求个数(并发数),就相当于一定是同时处理这个多个并发,处理完就是一个事务。默认是一次一个。

AB(ApacheBench) 是 Apache 自带的超文本传输协议 (HTTP) 网站性能压力测试工具。

ApacheBench用法详解:在Linux系统,一般安装好Apache后可以直接执行;
# ab  -n  1000 -c 100  
//n后面的代表总共发出1000个请求;-c后面的100表示采用100个并发(模拟100个人同时访问),后面的网址表示测试的目标URL。

原理:ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的,因此,它既可以用来测试apache的负载压力,也可以测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力。

乐虎国际登录 1

ab命令对发出负载的计算机要求很低,既不会占用很高CPU,也不会占用很多内存,但却会给目标服务器造成巨大的负载,其原理类似CC攻击。自己测试使用也须注意,否则一次上太多的负载,可能造成目标服务器因资源耗完,严重时甚至导致死机。

结果分析:
Document Path: /test.php
#测试的页面
Document Length: 15 bytes
#页面大小
Concurrency Level: 100
#测试的并发数,也是-c选项
Time taken for tests: 0.575 seconds
#整个测试持续的时间
Complete requests: 1000
#完成的请求数量
Failed requests: 0
#失败的请求数量
Write errors: 0
Total transferred: 171171 bytes
#整个过程中的网络传输量
HTML transferred: 15015 bytes
#整个过程中的HTML内容传输量
Requests per second: 1739.26 [#/sec] (mean)
#最重要的指标之一,相当于LR中的每秒事务数,后面括号中的mean表示这是一个平均值
Time per request: 57.496 [ms] (mean)
#最重要的指标之二,相当于LR中的平均事务响应时间,后面括号中的mean表示这是一个平均值  ----》计算公式:事务量=n/c,事务平均响应时间=总耗时/事务量
Time per request: 0.575 [ms] (mean, across all concurrent requests)
#每个连接请求实际运行时间的平均值
Transfer rate: 290.73 [Kbytes/sec] received
#平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题

二、AB工具的获取:

123456 Connection Times (ms)
                    min mean[+/-sd] median max
Connect:                  0  6  8.5    1  28
Processing:                1  49  18.4    51  113
Waiting:                  0  46  17.2    49  91                     
Total:                  11  55  19.5    54  140

1、工具是 Apache 自带的工具,安装了 Apache Http Server , 在 apache 的 Bin 目录下有 ab.exe 程序。

乐虎国际登录 2

2、如果不想安装Apache 工具,可直接上网单独下载ab.exe

#整个场景中所有请求的响应情况。在场景中每个请求都有一个响应时间,其中50%的用户响应时间小于54毫秒,66%的用户响应时间小于58毫秒,最大的响应时间小于140毫秒。对于并发请求,cpu实际上并不是同时处理的,而是按照每个请求获得的时间片逐个轮转处理的,所以基本上第一个Time per request时间约等于第二个Time per request时间乘以并发请求数。

三、AB常用参数的介绍:

总结:在远程对web服务器进行压力测试,往往效果不理想(因为网络延时过大),建议使用内网的另一台或者多台服务器通过内网进行测试,这样得出的数据,准确度会高很多。如果只有单独的一台服务器,可以直接本地测试,比远程测试效果要准确。

-n :总共的请求执行数,缺省是1;

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-06/144781.htm

-c: 并发数,缺省是1;

乐虎国际登录 3

-t:测试所进行的总时间,秒为单位,缺省50000s

-p:POST时的数据文件

-w: 以HTML表的格式输出结果

-i: 执行HEAD请求,而不是GET

四、AB工具的使用实践:

在cmd界面进入ab工具的目录,然后调用ab命令,编写测试用例命令:

乐虎国际登录 4

命令解释:

-n1000   执行请求数为1000个

-c100      并发用户数为100个

本文由乐虎游戏发布于计算机资讯,转载请注明出处:使用ab压力命令测试网站性能

关键词:

Java高级软件工程师面试考纲,java考纲

【java技术栈】总序,java 技术栈(technologystack)常被用来指代某项工作或某个职位需要掌握的一系列技能的总和。一...

详细>>

基于Linux下网络聊天室的设计与实现 PDF

本系统采用C/S结合的结构,客户端与客户端以及客户端与服务器端之间通过基于TCP/IP协议Socket套接口传送消息。服务...

详细>>

生育条件too man open files难题的消除

一、问题发现 讯奇消息网关服务器从北京迁移到无锡机房后,出现短信下发后,短信状态报告只接收到60%左右。 实现...

详细>>

游戏中战斗伤害范围攻击计算完整全版,战斗范围

游戏中战斗伤害范围攻击计算完整全版,战斗范围 还是看代码,比较直接,里面有详细的描述,应该能看懂。 前瞻回...

详细>>