​## 安装

brew install aprbrew install apr-utilbrew install openssl --upgradewget http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.33.tar.gztar zxvf httpd-2.4.33.tar.gz cd httpd-2.4.33./configure --with-apr=/usr/local/opt/apr --with-apr-util=/usr/local/opt/apr-util --prefix=/usr/local/apache --with-ssl=/usr/local/opt/openssl --enable-ssl --enable-cgi --enable-rewrite  --with-zlib --with-pcre --with-mpm=prefork --enable-modules=most --enable-mpms-shared=allsudo make sudo make install

测试

cd /usr/local/apache/bin/ulimit -n 10000./ab -V./ab -n 1000 -c 1000 -t 1 https://www.xxx.com

结果

This is ApacheBench, Version 2.3 <Revision: 1826891 >Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/Licensed to The Apache Software Foundation, http://www.apache.org/Benchmarking api.xxx.com (be patient)Finished 355 requestsServer Software:        nginx                                   # 被测试的Web服务器软件名称Server Hostname:        api.xxx.com                    # 请求的URL主机名Server Port:            443                                     # 被测试的Web服务器软件的监听端口SSL/TLS Protocol:       TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,2048,256TLS Server Name:        api.xxx.comDocument Path:          /news/index                             # 请求的URL中的根绝对路径,通过该文件的后缀名,我们一般可以了解该请求的类型Document Length:        0 bytes                                 # HTTP响应数据的正文长度Concurrency Level:      1000                                    # 并发用户数,这是我们设置的参数之一Time taken for tests:   1.007 seconds                           # 所有这些请求被处理完成所花费的总时间Complete requests:      355                                     # 完成请求数Failed requests:        0                                       # 失败的请求数量,这里的失败是指请求在连接服务器、发送数据等环节发生异常,以及无响应后超时的情况。如果接收到的HTTP响应数据的头信息中含有2XX以外的状态码,则会在测试结果中显示另一个名为       “Non-2xx responses”的统计项,用于统计这部分请求数,这些请求并不算在失败的请求中。Non-2xx responses:      380Total transferred:      187720 bytes                            # 网络总传输量 HTML transferred:       0 bytes                                 # HTML内容传输量Requests per second:    352.54 [#/sec] (mean)                   # 吞吐量-每秒请求数Time per request:       2836.555 [ms] (mean)                    # 服务器收到请求,响应页面要花费的时间 Time per request:       2.837 [ms] (mean, across all concurrent requests) # 平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题Transfer rate:          182.05 [Kbytes/sec] received网络上消耗的时间的分解:Connection Times (ms)min  mean[+/-sd] median   maxConnect:       62  339 146.0    389     730Processing:    36   77  21.0     77     131Waiting:       19   75  20.2     77     121Total:        123  416 156.4    477     817整个场景中所有请求的响应情况。在场景中每个请求都有一个响应时间 其中 50% 的用户响应时间小于 473 毫秒 80 % 的用户响应时间小于 537 毫秒 最大的响应时间小于 817 毫秒 Percentage of the requests served within a certain time (ms)50%    47366%    51175%    51980%    53790%    58095%    60798%    78299%    805100%    817 (longest request)

结果分析

Server Software 表示被测试的Web服务器软件名称Server Hostname 表示请求的URL主机名Server Port 表示被测试的Web服务器软件的监听端口Document Path 表示请求的URL中的根绝对路径,通过该文件的后缀名,我们一般可以了解该请求的类型Document Length 表示HTTP响应数据的正文长度Concurrency Level 表示并发用户数,这是我们设置的参数之一Time taken for tests 表示所有这些请求被处理完成所花费的总时间Complete requests 表示总请求数量,这是我们设置的参数之一Failed requests 表示失败的请求数量,这里的失败是指请求在连接服务器、发送数据等环节发生异常,以及无响应后超时的情况。如果接收到的HTTP响应数据的头信息中含有2XX以外的状态码,则会在测试结果中显示另一个名为       “Non-2xx responses”的统计项,用于统计这部分请求数,这些请求并不算在失败的请求中。Total transferred 表示所有请求的响应数据长度总和,包括每个HTTP响应数据的头信息和正文数据的长度。注意这里不包括HTTP请求数据的长度,仅仅为web服务器流向用户PC的应用层数据总长度。HTML transferred 表示所有请求的响应数据中正文数据的总和,也就是减去了Total transferred中HTTP响应数据中的头信息的长度。Requests per second 吞吐率,计算公式:Complete requests / Time taken for testsTime per request 用户平均请求等待时间,计算公式:Time token for tests/(Complete requests/Concurrency Level)Time per requet(across all concurrent request) 服务器平均请求等待时间,计算公式:Time taken for tests/Complete requests,正好是吞吐率的倒数。也可以这么统计:Time per request/Concurrency LevelTransfer rate 表示这些请求在单位时间内从服务器获取的数据长度,计算公式:Total trnasferred/ Time taken for tests,这个统计很好的说明服务器的处理能力达到极限时,其出口宽带的需求量。Percentage of requests served within a certain time(ms) 这部分数据用于描述每个请求处理时间的分布情况,比如以上测试,80%的请求处理时间都不超过6ms,这个处理时间是指前面的Time per request,即对于单个用户而言,平均每个请求的处理时间。

重点分析
Requests per second
Time per request
Percentage of requests served within a certain time(ms)

参数说明

格式:ab optionshostname[:port]/path-n requests Number of requests to perform//在测试会话中所执行的请求个数(本次测试总共要访问页面的次数)。默认时,仅执行一个请求。-c concurrency Number of multiple requests to make//一次产生的请求个数(并发数)。默认是一次一个。-t timelimit Seconds to max. wait for responses//测试所进行的最大秒数。其内部隐含值是-n 50000。它可以使对服务器的测试限制在一个固定的总时间以内。默认时,没有时间限制。-p postfile File containing data to POST//包含了需要POST的数据的文件,文件格式如“p1=1&p2=2”.使用方法是 -p 111.txt 。 (配合-T)-T content-type Content-type header for POSTing//POST数据所使用的Content-type头信息,如 -T “application/x-www-form-urlencoded” 。 (配合-p)-v verbosity How much troubleshooting info to print//设置显示信息的详细程度 – 4或更大值会显示头信息, 3或更大值可以显示响应代码(404, 200等), 2或更大值可以显示警告和其他信息。 -V 显示版本号并退出。-w Print out results in HTML tables//以HTML表的格式输出结果。默认时,它是白色背景的两列宽度的一张表。-i Use HEAD instead of GET// 执行HEAD请求,而不是GET。-x attributes String to insert as table attributes-y attributes String to insert as tr attributes-z attributes String to insert as td or th attributes-C attribute Add cookie, eg. -C “c1=1234,c2=2,c3=3″ (repeatable)//-C cookie-name=value 对请求附加一个Cookie:行。 其典型形式是name=value的一个参数对。此参数可以重复,用逗号分割。提示:可以借助session实现原理传递 JSESSIONID参数, 实现保持会话的功能,如-C ” c1=1234,c2=2,c3=3, JSESSIONID=FF056CD16DA9D71CB131C1D56F0319F8″ 。-H attribute Add Arbitrary header line, eg. ‘Accept-Encoding: gzip’ Inserted after all normal header lines. (repeatable)-A attribute Add Basic WWW Authentication, the attributesare a colon separated username and password.-P attribute Add Basic Proxy Authentication, the attributesare a colon separated username and password.//-P proxy-auth-username:password 对一个中转代理提供BASIC认证信任。用户名和密码由一个:隔开,并以base64编码形式发送。无论服务器是否需要(即, 是否发送了401认证需求代码),此字符串都会被发送。-X proxy:port Proxyserver and port number to use-V Print version number and exit-k Use HTTP KeepAlive feature-d Do not show percentiles served table.-S Do not show confidence estimators and warnings.-g filename Output collected data to gnuplot format file.-e filename Output CSV file with percentages served-h Display usage information (this message)//-attributes 设置属性的字符串. 缺陷程序中有各种静态声明的固定长度的缓冲区。另外,对命令行参数、服务器的响应头和其他外部输入的解析也很简单,这可能会有不良后果。它没有完整地实现 HTTP/1.x; 仅接受某些’预想’的响应格式。 strstr(3)的频繁使用可能会带来性能问题,即你可能是在测试ab而不是服务器的性能。

web压力测试工具ab安装及使用相关推荐

  1. python的web压力测试工具-pylot安装使用

    pylot是python编写的一款web压力测试工具.使用比较简单.而且测试结果相对稳定. 这里不得不鄙视一下apache 的ab测试,那结果真是让人蛋疼,同样的url,测试结果飘忽不定,看得人心惊肉 ...

  2. linux下web压力测试工具ab使用及详解

    APACHE自带的测试工具AB(apache benchmark).在APACHE的bin目录下. 格式: ./ab [options] [http://]hostname[:port]/path 参 ...

  3. 压力测试工具ab 及 centos下单独安装方法

    为什么80%的码农都做不了架构师?>>>    压力测试工具Ab简介 Apache安装包中自带的压力测试工具 Apache Benchmark(简称ab) 简单易用,这里就采用 ab ...

  4. asp.net core系列 67 Web压力测试工具WCAT

    asp.net core系列 67 Web压力测试工具WCAT 原文:asp.net core系列 67 Web压力测试工具WCAT 一.介绍 最近搭建了一套CQRS框架,需要在投入开发前,进行必要的 ...

  5. 网站压力测试工具webbench 安装与使用

    webbench最多可以模拟3万个并发连接去测试网站的负载能力,个人感觉要比Apache自带的ab压力测试工具好用,安装使用也特别方便,并且非常小. 主要是 -t 参数用着比较爽,下面参考了张宴的文章 ...

  6. 网站性能Web压力测试工具webbench

    为什么80%的码农都做不了架构师?>>>    webbench最多可以模拟3万个并发连接去测试网站的负载能力,个人感觉要比Apache自带的ab压力测试工具好,安装使用也特别方便. ...

  7. 服务器压力测试工具ab

    在学习ab工具之前,我们需了解几个关于压力测试的概念 吞吐率(Requests per second) 概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请 ...

  8. windows web服务器性能测试工具,网站性能Web压力测试工具webbench

    webbench最多可以模拟3万个并发连接去测试网站的负载能力,个人感觉要比Apache自带的ab压力测试工具好,安装使用也特别方便. 1.适用系统:Linux 2.编译安装: wget http:/ ...

  9. 压力测试工具Ab简介

    Apache安装包中自带的压力测试工具 Apache Benchmark(简称ab) 简单易用,这里就采用 ab作为压力测试工具了. 1.独立安装 通过 yum-utils中的yumdownload  ...

最新文章

  1. 这套Java调优方案太顶了!同时支撑10个618大促都不是问题
  2. linux kernl网址
  3. python爬虫机器人价格_Python
  4. 制作.sens数据集跑通bundlefusion
  5. linuxpython升级3.5_linux升级python3.5到3.6
  6. 最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用36
  7. 算法的优缺点_朴素贝叶斯算法的优缺点
  8. [C#]System.Timers.Timer
  9. matlab altera视频,Altera.FPGA入门及提高视频教程
  10. 第十二届蓝桥杯模拟赛Python组(第三期)
  11. 谷粒商城项目基础篇总结文档
  12. 基于auto.js的安卓抢购软件---淘宝抢购小助手(不完善,仅供参考)
  13. 基于单片机的防盗报警监控系统设计(#0401)
  14. Alphabetic Removals详解(特殊算法巧解)
  15. 关于Android自启动管理的相关知识点
  16. 自己写的一点福利代码(三)
  17. 那些令人发燥的JAVA虚引用
  18. bind dlz mysql rpm_智能DNS --BIND DLZ+MYSQL
  19. 主板上的内存插槽颜色到底代表了什么意思?
  20. Supervised Contrastive Learning For Recommendation

热门文章

  1. 算法与数据结构大系列 - NO.1 - 插入排序
  2. 云视频会议的“多、快、好、省”(下)
  3. Play Framework 2.5 整合 MyBatis
  4. 三星全球首家量产18nm DRAM
  5. 用Vue撸一个『A-Z字母滑动检索菜单』
  6. Android开发实践:如何设置NDK的编译选项
  7. 彻底解决swf浏览器的缓存问题
  8. Swift 必备开发库 (高级篇)
  9. vs2008 中MessageBox()报错——CString与Char* 的转化
  10. 备份TB级别Oracle数据库的一些技巧