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

栏目: 编程工具 · 发布时间: 7年前

内容简介:使用ab压力命令测试网站性能

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

ApacheBench命令原理:

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

格式:# ab [options] [http://]hostname[:port]/path

参数说明:

-n requests Number of requests to perform

//在测试会话中所执行的请求个数(本次测试总共要访问页面的次数)。默认时,仅执行一个请求。

-c concurrency Number of multiple requests to make

//一次产生的请求个数(并发数),就相当于一定是同时处理这个多个并发,处理完就是一个事务。默认是一次一个。

ApacheBench用法详解:在 Linux 系统,一般安装好Apache后可以直接执行;

# ab  -n  1000 -c 100 http://10.1.1.128/test.php 

//n后面的代表总共发出1000个请求;-c后面的100表示采用100个并发(模拟100个人同时访问),后面的网址表示测试的目标URL。

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

结果分析:

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

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

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

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

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

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

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


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

JavaScript精粹

JavaScript精粹

爱德华兹 / 高铁军 / 人民邮电出版社 / 2007-6 / 49.00元

《JavaScript 精粹》主要介绍JavaScript应用中一些常见的问题及其解决方法,从最基础的数字、字符串、数组到进阶的DOM、表单验证、cookie,再到较为高级的Ajax,书中均有涉及。《JavaScript 精粹》覆盖现在非常流行和通用的技术,提出很多出现频率较高的Web开发常见问题,并提供了大量的技巧和解决方案,具有很强的实用性和通用性,书中的代码也具有很强的兼容性。《JavaSc......一起来看看 《JavaScript精粹》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具