文档章节

Centos Web 压力测试工具ApacheBench (ab)独立安装

豆花饭烧土豆
 豆花饭烧土豆
发布于 2017/06/05 06:34
字数 862
阅读 28
收藏 0

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

Apache服务自带了应该用于压力测试的工具ab(ApacheBench),对应做一些简单的压力测试,它完全能够胜任,本文主要介绍,在centos中不安装Apache的情况下,安装ab

1,ab运行的时候需要依赖包,我们先安装依赖包,直接yum安装就可以了

yum install apr-util

2, 下载apache的rpm包,分离ab

[root@Tomcat ~]# mkdir ab
[root@Tomcat ~]# cd ab
[root@Tomcat ab]# yum -y install yum-utils
[root@Tomcat ab]# yumdownloader httpd  #yumdownloader 需要安装yum-utils才能使用,默认是没有的安装的
[root@Tomcat ab]# rpm2cpio httpd-2.2.3-91.el5.centos.i386.rpm |cpio -idmv
[root@Tomcat ab]# \cp -pa usr/bin/ab /usr/bin/  #复制到系统PATH就可以使用了

 

3,ab简单用法

参数很多,一般我们用 -c 和 -n 参数就可以了。

#ab -c 1000 -n 4000 http://www.yousite.com/index.html  #具体到某页面

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

[root@Tomcat ab]# ab -c 1000 -n 4000 http://192.168.0.222/docs/manager-howto.html
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/

Benchmarking 192.168.0.222 (be patient)
Completed 400 requests
Completed 800 requests
Completed 1200 requests
Completed 1600 requests
Completed 2000 requests
Completed 2400 requests
Completed 2800 requests
Completed 3200 requests
Completed 3600 requests
Finished 4000 requests


Server Software:        nginx/1.4.3
Server Hostname:        192.168.0.222
Server Port:            80

Document Path:          /docs/manager-howto.html
Document Length:        73924 bytes

Concurrency Level:      1000
Time taken for tests:   0.875928 seconds
Complete requests:      4000
Failed requests:        0
Write errors:           0
Total transferred:      296732000 bytes
HTML transferred:       295696000 bytes
Requests per second:    4566.59 [#/sec] (mean)
#最重要的指标之一,相当于LR中的每秒事务数,后面括号中的mean表示这是一个平均值,越大抗压越强
Time per request:       218.982 [ms] (mean) 
#最重要的指标之二,相当于LR中的平均事务响应时间,后面括号中的mean表示这是一个平均值
Time per request:       0.219 [ms] (mean, across all concurrent requests)
Transfer rate:          330822.86 [Kbytes/sec] received
#平均每秒网络上的流量,吞吐量,越大抗压越强

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   4.5      0      29
Processing:     1   17  14.5     17     653
Waiting:        0   17  14.5     17     653
Total:         15   18  15.2     17     674

Percentage of the requests served within a certain time (ms)
  50%     17
  66%     18
  75%     18
  80%     18
  90%     20
  95%     22
  98%     37
  99%     40
 100%    674 (longest request)

 

主要介绍里面的几个指标,我基本也就看这几个指标,简单测试足够了,如果要全面的监控nginx,需要用到专业的监控程序,如nagios

参考:https://my.oschina.net/harlanblog/blog/395420

 yum install apr-util

yum install yum-utils

cd /opt

mkdir /opt/ab

yum install yum-utils.noarch

yumdownloader httpd-tools*

rpm2cpio httpd-*.rpm | cpio -idmv

cp /opt/ab/usr/bin/ab /usr/bin/

参考:

http://blog.csdn.net/fyqaccpt96/article/details/43272001

http://www.cnblogs.com/terryguan/p/6681055.html

 

© 著作权归作者所有

共有 人打赏支持
豆花饭烧土豆
粉丝 14
博文 352
码字总数 92353
作品 0
深圳
[雪峰磁针石博客] 性能测试工具ApacheBench

ApacheBench简介 ApacheBench 是一个用来衡量http服务器性能的单线程命令行工具。原本针对Apache http服务器,但是也适用于其他http服务器。 ab工具与标准 Apache源码一起发布,免费,开源,...

Python测试开发人工智能
07/18
0
0
Centos Web 压力测试工具ApacheBench (ab)独立安装

Apache服务自带了应该用于压力测试的工具ab(ApacheBench),对应做一些简单的压力测试,它完全能够胜任,本文主要介绍,在centos中不安装Apache的情况下,安装ab 1,ab运行的时候需要依赖包...

静夜听风
2015/04/02
0
1
centos7.4 安装配置vnc

如果没有安装X-Windows 桌面的话要先安装Xwindows [root@test-bench system]# yum check-update [root@test-bench system]# yum groupinstall "X Window System" 启动桌面——startx #start......

yuri_cto
06/10
0
0
nginx限制某个IP同一时间段的访问次数

如何设置能限制某个IP某一时间段的访问次数是一个让人头疼的问题,特别面对恶意的ddos攻击的时候。其中CC攻击(Challenge Collapsar)是DDOS(分布式拒绝服务)的一种,也是一种常见的网站攻...

Jean
2013/11/30
0
1
nginx限制某个IP同一时间段的访问次数

如何设置能限制某个IP某一时间段的访问次数是一个让人头疼的问题,特别面对恶意的ddos攻击的时候。其中CC攻击(Challenge Collapsar)是DDOS(分布式拒绝服务)的一种,也是一种常见的网站攻...

山哥
2013/04/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Redis应用之分布式锁(set)

Redis应用之分布式锁(set) 在单机应用的场景下,我们常使用的锁主要是synchronized与Lock;但是在分布式横行的大环境下,显然仅仅这两种锁已经无法满足我们的需求; 需求:秒杀场景下,有若干...

GMarshal
23分钟前
0
0
python实现简单的文件加密与解密

对于任意的一个文件,本质上来讲都是二进制的。 对于任意一个二进制数a,对其用另外任意一个与a的位数相同的二进制数m进行“异或”操作得到结果e,即e=a xor m; 如果再讲上面得到的e用m进行...

Aomo
24分钟前
0
0
Android开发应用程序生成以太坊钱包

Android应用程序以太坊钱包生成,要做的工作不少,不过如果我们一步一步来应该也比较清楚: 1.在app/build.gradle中集成以下依赖项: compile ('org.web3j:core-android:2.2.1') web3j核心是...

geek12345
39分钟前
0
0
ArrayList嘿嘿嘿

数组扩容技术: //扩容技术 将原数组objs类容复制到新数组并且长度为11 Object[] newObjs = Arrays.copyOf(objs,11); 数组比较大那么System.arraycopy比较有优势,因为其使用的是内存复制,省...

熊猫你好
今天
2
0
Android平台下的一个好用的日历库(sxtwl_cpp),支持农历转公历,和公历转农历等功能

python版的sxtwl_cpp传送入口 在build.gradle的allprojects中加入 maven { url 'https://dl.bintray.com/yuangu/sxtwl' } 最终如下面代码所示: allprojects { repositories { ......

元谷
今天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部