AB(apache bench )简介-安装-使用

十月飞翔
• 阅读 157

ab全称为:apache bench ab是Apache超文本传输协议(HTTP)的性能测试工具。其设计意图是描绘当前所安装的Apache的执行性能,主要是显示你安装的Apache每秒可以处理多少个请求。 ab是apache自带的压力测试工具。ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。比如nginx、tomcat、IIS等。

指令示例:

ab -c 1000 -n 100000 -k http://EIP1/index.html

ab -c 1000 -n 100000 -k http://EIP1/test.png

1、安装YUM-EPEL源 HTTP-Tools软件包由YUM-EPEL源提供。

[root@localhost ~]# yum -y install epel-release

2、安装HTTPD-Tools [root@localhost ~]# yum -y install httpd-tools

3、调整系统限制 系统默认情况下允许一个进程同时打开的文件描述符数量是1024,若我们需要进行超过1024并发测试的话,可能需要调高此值,客户端和服务端都需要调整。

[root@localhost ~]# ulimit -n 65535 => 设置进程并发文件数(当前生效)

[root@localhost ~]# vim /etc/security/limits.conf => 设置进程并发文件数(永久生效)

用户 软硬限制 限制类型 值

root soft nofile 65535

root hard nofile 65535

  • soft nofile 65535

  • hard nofile 65535

* 表示所有用户。

soft 软限制,当用户使用超出设定值系统会发出告警。

hard 硬限制,绝对限制,用户使用绝对不能超出设置的值。

nofile 限制类型,进程可同时打开的并发文件描述符数量。

[root@localhost ~]# ulimit -n 65535

AB的使用 [root@localhost ~]# ab -c 1000 -n 100000 -k http://EIP1/index.html

[root@localhost ~]# ab -c 1000 -n 100000 -k http://EIP1/test.png

-n 设置请求总数量。

-c 设置并发请求数量。

-s 设置请求超时时间。

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

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

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

Benchmarking www.szaybc.com (be patient)

开始基准测试(请耐心等待)

Completed 10000 requests 完成10000个请求

Completed 20000 requests 完成20000个请求

Completed 30000 requests 完成30000个请求

Completed 40000 requests 完成40000个请求

Completed 50000 requests 完成50000个请求

Completed 60000 requests 完成60000个请求

Completed 70000 requests 完成70000个请求

Completed 80000 requests 完成80000个请求

Completed 90000 requests 完成90000个请求

Completed 100000 requests 完成100000个请求

Finished 100000 requests 完成了100000个请求

Server Software: nginx/1.13.1 服务器软件

Server Hostname: www.szaybc.com服务器主机名

Server Port: 80服务器端口

Document Path: / 文件路径

Document Length: 65732 bytes 文件长度(大小)

Concurrency Level: 1000 并发级别(数量),并发用户数量

Time taken for tests: 5.713 seconds 测试时间,完成所有请求所花费的时间

Complete requests: 100000 完成请求数

Failed requests: 0 失败请求数

Write errors: 0 写入错误

Total transferred: 65969000 bytes 总传输数据大小

HTML transferred: 65732000 bytes 总传输HTML数据大小

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

吞吐率,每秒能完成请求处理的数量。计算:吞吐率=完成请求数/测试时间

Time per request: 571.302 [ms] (mean)

所有并发用户都请求一次的等待时间(平均值),单位为毫秒。计算:测试时间/(完成请求数/并发用户数量)

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

单个用户请求一次的等待时间(平均值),单位为毫秒。计算:所有并发用户都请求一次的等待时间/并发用户数量

Transfer rate: 11276.50 [Kbytes/sec] received

接受响应数据的传输速率,单位KB/S。计算:传输速率=总传输数据大小/测试时间

Connection Times (ms)

连接时间(毫秒) min mean[+/-sd] median max 最小值 平均值 标准差 中间值 最大值

Connect: 1 33 14.9 29 108 网络连接时间:

Processing: 14 530 35.7 539 603 系统处理时间:

Waiting: 2 43 16.6 42 129 等待时间:

Total: 15 563 32.0 566 650 请求完成总时间:

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

按完成请求的百分比,得出完成请求中花费时间最长的那一个请求的时间,也就是这些请求完成时间的最大值,单位为毫秒

50% 566 50%请求完成时间的最大值是566毫秒

66% 569 66%请求完成时间的最大值是569毫秒

75% 570 75%请求完成时间的最大值是570毫秒

80% 571 80%请求完成时间的最大值是571毫秒

90% 578 90%请求完成时间的最大值是578毫秒

95% 625 95%请求完成时间的最大值是625毫秒

98% 626 98%请求完成时间的最大值是626毫秒

99% 627 99%请求完成时间的最大值是627毫秒

100% 650 (longest request) 100%请求完成时间的最大值是650毫秒(最长请求) AB(apache bench )简介-安装-使用

AB参数 -n 测试会话中所执行的请求个数,默认仅执行一个请求 -c 一次产生的请求个数,即同一时间发出多少个请求,默认为一次一个 -t 测试所进行的最大秒数,默认为无时间限制....其内部隐含值是[-n 50000],它可以使对服务器的测试限制在一个固定的总时间以内 -p 包含了需要POST的数据的文件 -T POST数据所使用的Content-type头信息 -v 设置显示信息的详细程度 -w 以HTML表格的形式输出结果,默认是白色背景的两列宽度的一张表 -i 以HTML表格的形式输出结果,默认是白色背景的两列宽度的一张表 -x 设置

属性的字符串,此属性被填入<table 这里> -y 设置属性的字符串 -z 设置
属性的字符串 -C 对请求附加一个Cookie行,其典型形式是name=value的参数对,此参数可以重复 -H 对请求附加额外的头信息,此参数的典型形式是一个有效的头信息行,其中包含了以冒号分隔的字段和值的对(如"Accept-Encoding: zip/zop;8bit") -A HTTP验证,用冒号:分隔传递用户名及密码 -P 无论服务器是否需要(即是否发送了401认证需求代码),此字符串都会被发送 -X 对请求使用代理服务器 -V 显示版本号并退出 -k 启用HTTP KeepAlive功能,即在一个HTTP会话中执行多个请求,默认为不启用KeepAlive功能 -d 不显示"percentage served within XX [ms] table"的消息(为以前的版本提供支持) -S 不显示中值和标准背离值,且均值和中值为标准背离值的1到2倍时,也不显示警告或出错信息,默认会显示最小值/均值/最大值等(为以前的版本提供支持) -g 把所有测试结果写入一个'gnuplot'或者TSV(以Tab分隔的)文件 -e 产生一个以逗号分隔的(CSV)文件,其中包含了处理每个相应百分比的请求所需要(从1%到100%)的相应百分比的(以微妙为单位)时间 -h 显示使用方法 -k 发送keep-alive指令到服务器端

点赞
收藏
评论区
推荐文章
blmius blmius
1年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录 问题 用navicat导入数据时,报错: 原因这是因为当前的MySQL不支持datetime为0的情况。 解决修改sql\mode: sql\mode:SQL Mode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。 全局s
Stella981 Stella981
11个月前
Apache Synapse 远程代码执行漏洞(CVE
![](https://oscimg.oschina.net/oscnet/435fc4cd-e65d-4aee-9a2e-fca3080cb89e.png) **0x00事件背景** ------------ * * * Apache Synapse 是一个简单、轻量级的高性能企业服务总线 (ESB),它是在 Apache Software Foun
Stella981 Stella981
11个月前
PhoneGap设置Icon
参考:http://cordova.apache.org/docs/en/latest/config\_ref/images.html 通过config.xml中的<icon>标签来设置Icon <icon src="res/ios/icon.png" platform="ios" width="57" height="57" densi
Stella981 Stella981
11个月前
Jmeter 01 Jmeter下载安装及入门
jmeter简介 -------- > Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。——[百度百科](https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fbaike.baidu.c
Stella981 Stella981
11个月前
Apache基础教程
Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。本教程主要介绍了Apache安装、Apache环境配置、Apache搭建网站、Apache压力测试等与Apach
Wesley13 Wesley13
11个月前
MySQL查询按照指定规则排序
1.按照指定(单个)字段排序 select * from table_name order id desc; 2.按照指定(多个)字段排序 select * from table_name order id desc,status desc; 3.按照指定字段和规则排序 selec
Easter79 Easter79
11个月前
Storm VS Flink ——性能对比
![](https://oscimg.oschina.net/oscnet/2cec00eb2dccf5fdec8def77207da253a86.jpg) 1.背景 ---- Apache Flink 和 Apache Storm 是当前业界广泛使用的两个分布式实时计算框架。其中 Apache Storm(以下简称“Storm”)在美团点评实时
Stella981 Stella981
11个月前
Jmeter之java请求
Apache Jmeter是开源、易用的性能测试工具,之前工作中用过几次对http请求进行性能测试,对jmeter的基本操作有一些了解。最近接到开发的对java请求进行性能测试的需求,所以需要写java请求的脚本。 Java请求的性能测试与http请求的性能测试类似,都是给远程应用提供的服务发送请求并施压,得到响应结果及性能数据。不同的是,http调用的是
Stella981 Stella981
11个月前
Django部署方法
**Windows方案: Apache2.4 + Django2.0** **网上的方法乱七八糟:** 那么接下来:最好的方法,不行吃屎。 当前环境是Django2.0+ python35(64bit) **部署原因:** 1,django给你的是个测试服务器,最简单的,性能最低的。 2,比如你的/media/ 下的文件,例如视频。
Wesley13 Wesley13
11个月前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
#### 背景描述 # Time: 2019-01-24T00:08:14.705724+08:00 # User@Host: **[**] @ [**] Id: ** # Schema: sentrymeta Last_errno: 0 Killed: 0 # Query_time: 0.315758 Lock_
helloworld_34035044 helloworld_34035044
2个月前
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。 uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid() 或 uuid(sep)参数说明:sep 布尔值,生成的uuid中是否包含分隔符'',缺省为