2019独角兽企业重金招聘Python工程师标准>>>

基本简介

ApacheBench 是一个指令列程式,专门用来执行网站服务器的运行效能,特别是针对Apache 网站服务器。这原本是用来检测 Apache 网站服务器能够提供的效能,特别是可以看出Apache能提供每秒能送出多少网页。

工具准备

点击[下载]

命令

  • 在Linux系统,一般安装好ApacheBench后可以直接在终端中执行
  • 如果是Win系统下,打开cmd命令行窗口,cd到apache安装目录的bin目录下
ab [ -A auth-username:password ] [ -b windowsize ] [ -B local-address ] [ -c concurrency ] [ -C cookie-name=value ] [ -d ] [ -e csv-file ] [ -f protocol ] [ -g gnuplot-file ] [ -h ] [ -H custom-header ] [ -i ] [ -k ] [ -l ] [ -m HTTP-method ] [ -n requests ] [ -p POST-file ] [ -P proxy-auth-username:password ] [ -q ] [ -r ] [ -s timeout ] [ -S ] [ -t timelimit ] [ -T content-type ] [ -u PUT-file ] [ -v verbosity] [ -V ] [ -w ] [ -x <table>-attributes ] [ -X proxy[:port] ] [ -y <tr>-attributes ] [ -z <td>-attributes ] [ -Z ciphersuite ] [http[s]://]hostname[:port]/path

示例

ab -n 4000 -c 1000 http://www.ha97.com/

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

结果分析

This is ApacheBench, Version 2.3
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/Benchmarking 192.168.80.157 (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
Completed 4000 requests
Finished 4000 requestsServer Software: Apache/2.2.15
Server Hostname: 192.168.80.157
Server Port: 80Document Path: /phpinfo.php
#测试的页面
Document Length: 50797 bytes
#页面大小Concurrency Level: 1000
#测试的并发数
Time taken for tests: 11.846 seconds
#整个测试持续的时间
Complete requests: 4000
#完成的请求数量
Failed requests: 0
#失败的请求数量
Write errors: 0
Total transferred: 204586997 bytes
#整个过程中的网络传输量
HTML transferred: 203479961 bytes
#整个过程中的HTML内容传输量
Requests per second: 337.67 [#/sec] (mean)
#最重要的指标之一,相当于LR中的每秒事务数,后面括号中的mean表示这是一个平均值
Time per request: 2961.449 [ms] (mean)
#最重要的指标之二,相当于LR中的平均事务响应时间,后面括号中的mean表示这是一个平均值
Time per request: 2.961 [ms] (mean, across all concurrent requests)
#每个连接请求实际运行时间的平均值
Transfer rate: 16866.07 [Kbytes/sec] received
#平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 483 1773.5 11 9052
Processing: 2 556 1459.1 255 11763
Waiting: 1 515 1459.8 220 11756
Total: 139 1039 2296.6 275 11843
#网络上消耗的时间的分解,各项数据的具体算法还不是很清楚Percentage of the requests served within a certain time (ms)
50% 275
66% 298
75% 328
80% 373
90% 3260
95% 9075
98% 9267
99% 11713
100% 11843 (longest request)
#整个场景中所有请求的响应情况。在场景中每个请求都有一个响应时间,其中50%的用户响应时间小于275毫秒,66%的用户响应时间小于298毫秒,最大的响应时间小于11843毫秒。对于并发请求,cpu实际上并不是同时处理的,而是按照每个请求获得的时间片逐个轮转处理的,所以基本上第一个Time per request时间约等于第二个Time per request时间乘以并发请求数。

参数说明

-A auth-username:password有的请求需要用户名和密码进行验证:(例如:401 验证需求).
-b windowsizeTCP 发送和接收的buffer大小,单位是 bytes
-c concurrency并发数,同一时间有多少强求发出去,默认是1。
-C cookie-name=value加上Cookie:以“ name=value ”的形式,可以重复 -C xx1=yy1 -C xx2=yy2。
-d不展示"percentage served within XX [ms] table".
-e csv-file写一个逗号分隔的CSV文件,包含每个百分比(from 1% to 100%)服务器执行的时间(毫秒),这个文件一般比'gunplot'有用。
-f protocol指定 SSL/TLS 协议 (SSL2, SSL3, TLS1, or ALL).
-g gnuplot-file写所有有用的信息到TSV(Tab separate values)文件,可以轻松导入Excel等里面,label在文件第一行。
-h展示帮助信息
-H custom-header加入额外的头信息。以冒号分割,例如("Accept-Encoding: zip/zop;8bit")
-i发送GET请求
-k打开Http的keepalive功能。在一个http会话里执行多个请求。默认不开启。
-n requests要执行的请求校验次数。默认请求一次,请求一次的结果不能代表校验结果,不准确。
-p POST-file包含POST数据文件
-P proxy-auth-username:password支持基本Auth代理路由验证。在(http code : 407 的时候需要)
-q当程序有150个请求,输出以每10%或100个来显示。-q 用来取消这些信息。
-r在socket错误的时候不退出。
-s如果用在SSl协议,功能还处在试验阶段,你不需要用它。
-S不展示终止和标准值,也不展示警告信息。
-t timelimit校验花费的最大时间,内部设置-n 50000 次。使用这个选项在特定时间内测试。默认不开启
-T content-type用于POST/PUT 数据,例如eg. application/x-www-form-urlencoded. Default: text/plain.
-u PUT-filePUT 的文件,记着加上-T
-v verbosity设置输出等级, 4 输出头信息,3 输出响应码(404,200) 2 输出警告和信息
-V展示版本,然后退出。
-w输出结果到html里的table,默认两列,白色背景。
-x <table>-attributesString to use as attributes for <table>. Attributes are inserted <table here >.
-X proxy[:port]使用代理。
-y <tr>-attributes设置属性到 <tr>.
-z <td>-attributes设置属性到 <td>.
-Z ciphersuite指定 SSL/TLS 密码套件 (See openssl ciphers).

总结

说明:我找了一个内网比较复杂的页面进行测试,我们通过结果可以大概看到网站平均吞吐量在442左右,需要注意的是如果你也需要测试最好找一个内网的页面或者站点进行测试,这样网速等其他区因素的影响会降低到最小,我开始是拿我们博客园进行测试,但是恰好今天网络很不稳定所以数据等待结果非常慢,所以为了减小误差,我们尽量选用内网进行测试。大家通过结果可以清晰的估算出我们网站目前的情况!通过使用也能对比出ab相对于我之前提及到的Jmeter轻量很多.

转载于:https://my.oschina.net/u/2930289/blog/1538972

性能测试-ApacheBench相关推荐

  1. Java并发(3)--项目准备:环境初始化、案例准备、并发模拟工具、并发模拟代码

    文章目录 一 环境初始化 二 案例准备 三 并发模拟-工具 1. postman 并发测试步骤 2. Apache Bench 并发模拟的性能测试 3. JMeter 并发模拟的性能测试 四 并发模拟 ...

  2. mysql smallint 长度_转:mysql中int、bigint、smallint 和 tinyint的区别与长度的含义

    bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字).存储大小为 8 个字节. P.S. b ...

  3. apache性能测试工具ab使用详解

    网站性能压力测试是服务器网站性能调优过程中必不可缺少的一环.只有让服务器处在高压情况下,才能真正体现出软件.硬件等各种设置不当所暴露出的问题. 性能测试工具目前最常见的有以下几种:ab.http_lo ...

  4. 史上最全的Web性能测试工具大全(下 )

    2019独角兽企业重金招聘Python工程师标准>>> 本文继续为大家介绍Web开发中常用的性能测试工具,如果你有其他性能测试产品推荐,欢迎交流! Opera Dragonfly O ...

  5. [雪峰磁针石博客]2018最佳12个开源或免费web服务器和客户端性能测试工具

    更多参考 软件测试专家工具包2性能测试 服务器端性能 image.png Locust.io – 了解服务器端性能的好工具. 语言python3.源码 python3+ python2.7+ gith ...

  6. dubbo图形化界面搭建_使用 JMeter 进行 Dubbo 性能测试

    1 前言 说道性能测试工具,你会立刻联想到哪一个?ab(ApacheBench).JMeter.LoadRunner.wrk-可以说市面上的压测工具实在是五花八门.那如果再问一句,对 Dubbo 进行 ...

  7. beego使用php,介绍beego、nginx性能测试实例

    测试工具:ab(apacheBench) 硬件环境: Intel xeon cpu E5-2682 v4 2.50GHz 4 core 8GBytes 内存 软件环境: ubuntu16 nginx ...

  8. java接口测试工具_这 5 款实用性能测试工具,你会如何选择?

    当我们做性能测试的时候,测试协议需要用到性能测试工具.市场上有很多可以做性能测试的工具.有些是收费的,有些是开源免费的.选择的时候它是否友好支持所有的协议呢?现在带大家来看看一些行业中常用的流行的性能 ...

  9. Web Service 性能测试工具比较

    背景 希望选择一款Web Service性能测试工具,能真实模拟大量用户访问网站时的请求,从而获取服务器当前的请求处理能力(请求数/秒). 以微信服务器为例,每个用户用独立的登录token,做各种操作 ...

最新文章

  1. Kettle和ETL的基本构成
  2. 【Python初学者】准备
  3. 申论万用句型——背下来
  4. 图像处理——基于OpenCV的Scharr边缘检测
  5. 【逆向知识】裸函数(Naked函数)
  6. SpringMVC的请求-文件上传-单文件上传的代码实现2
  7. python中使用pickle进行序列化
  8. 统信uos系统考试题_离Windows更近一步!微信Linux原生版上线:国产统信UOS系统已适配...
  9. 入门实践,Python数据分析
  10. InnoDB文件系统
  11. 浅谈今日头条关键词下拉词框优化推广的优势
  12. python后台架构Django教程——数据模型Model
  13. 昆特牌Online——客户端用到的一些技术
  14. Git 客户端管理工具:Git Gui、TortoiseGit、GitHub Desktop
  15. 美团笔试题及解析(时间:2022年9月3号)
  16. 小散量化炒股记|只花几秒钟!多任务爬虫获取A股每日实时行情数据
  17. 关于硬盘分区(主分区、扩展分区和逻辑分区)
  18. 笔杆网试用---感官体验篇一
  19. iframe中加入html,HTML中IFRAME标签的使用
  20. idea2021 乱码问题

热门文章

  1. Mac下配置PHP+Apache+phpMyAdmin+MySql远程链接
  2. linux mint关于web开发的相关环境配置
  3. 104种***清除方法
  4. 编译内核出错:invalid option `abi=aapcs-linux'
  5. GitLab 严重漏洞可导致攻击者窃取runner 注册令牌
  6. Grafana 中存在严重的未授权任意文件读取漏洞,已遭利用
  7. Intel 警告注意 CSME 引擎中的严重漏洞,发布产品停产通知
  8. 十万个为什么之为什么大家都说dubbo
  9. ionic使用ImagePicker插件中文显示
  10. 使用管道和rm命令遇到的问题