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

十月飞翔
• 阅读 546

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
2年前
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:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
2年前
PhoneGap设置Icon
参考:http://cordova.apache.org/docs/en/latest/config\_ref/images.html通过config.xml中的<icon标签来设置Icon<iconsrc"res/ios/icon.png"platform"ios"width"57"height"57"densi
Stella981 Stella981
2年前
Apache基础教程
Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。本教程主要介绍了Apache安装、Apache环境配置、Apache搭建网站、Apache压力测试等与Apach
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Stella981 Stella981
2年前
Django部署方法
Windows方案:Apache2.4Django2.0网上的方法乱七八糟:那么接下来:最好的方法,不行吃屎。当前环境是Django2.0python35(64bit)部署原因:1,django给你的是个测试服务器,最简单的,性能最低的。2,比如你的/media/下的文件,例如视频。
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
2个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这