我的编程空间,编程开发者的网络收藏夹
学习永远不晚

apache中ab压力测试工具怎么用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

apache中ab压力测试工具怎么用

这篇文章主要介绍apache中ab压力测试工具怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

一、脚本说明

该脚本支持ab大多常用参数,如果你需要更多参数,可以通过修改本脚本,加入你想要的即可。

该脚本支持:

1)、批量测试。注意,并不是简单的批量测试,你可以定测测试轮数,间隔时间。2)、阶梯并发增长定制测试,如并发从100到1000,每轮测5次等。3)、支持ab的post file模式,你只要在参数-P | --postfile中带上你的数据文件即可。4)、压测完指标分析显示,本shell可以将ab中常用的指示即时分析出来。

apache中ab压力测试工具怎么用


二、脚本内容

#!/bin/bashecho '*===================================================*'echo '| 本脚本工具基于ab(Apache benchmark),请先安装好ab, awk |'echo '| 注意: |' echo '| shell默认最大客户端数为1024 |'echo '| 如超出此限制,请执行以下命令: |'echo '| ulimit -n 655350 |'echo '*===================================================*'function usage() { echo ' 命令格式:' echo ' ab-test-tools.sh' echo ' -N|--count 总请求数,缺省 : 5w' echo ' -C|--clients 并发数, 缺省 : 100' echo ' -R|--rounds 测试次数, 缺省 : 10 次' echo ' -S|-sleeptime 间隔时间, 缺省 : 10 秒' echo ' -I|--min 最小并发数, 缺省: 0' echo ' -X|--max 最大并发数,缺省: 0' echo ' -J|--step 次递增并发数' echo ' -T|--runtime 总体运行时间,设置此项时最大请求数为5w'  echo ' -P|--postfile post数据文件路径' echo ' -U|--url 测试地址' echo '' echo ' 测试输出结果*.out文件' exit;}# 定义默认参数量# 总请求数count=50000# 并发数clients=100O# 测试轮数rounds=10# 间隔时间sleeptime=10# 最小并发数min=0# 最大数发数max=0# 并发递增数step=0# 测试地址url=''# 测试限制时间runtime=0# 传输数据postfile=''ARGS=`getopt -a -o N:C:R:S:I:X:J:U:T:P:h -l count:,client:,round:,sleeptime:,min:,max:,step:,runtime:,postfile:,help -- "$@"`[ $? -ne 0 ] && usageeval set -- "${ARGS}" while true do case "$1" in -N|--count) count="$2" shift ;;  -C|--client) clients="$2" shift ;; -R|--round) rounds="$2" shift ;; -S|--sleeptime) sleeptime="$2" shift ;; -I|--min) min="$2" shift ;; -X|--max) max="$2" shift ;; -J|--step) step="$2" shift ;; -U|--url) url="$2" shift ;; -T|--runtime) runtime="$2" shift ;; -P|--postfile) postfile="$2" shift ;; -h|--help) usage ;; --) shift break ;; esacshiftdone# 参数检查if [ x$url = x ]then echo '请输入测试url,非文件/以为结束' exitfiflag=0if [ $min != 0 -a $max != 0 ]then  if [ $max -le $min ]  then echo '最大并发数不能小于最小并发数' exit fi if [ $step -le 0 ] then echo '并发递增步长不能<=0' exit fi if [ $min -lt $max ] then flag=1 fifi# 生成ab命令串cmd="ab -k -r"# 数据文件if [ x$postf != x ]then cmd="$cmd -p $postf"fiif [ x$tl != x -a $tl != 0 ]then  max=50000; cmd="$cmd -t$tl"ficmd="$cmd -n$count"echo '-----------------------------';echo '测试参数';echo " 总请求数:$count";echo " 并发数:$clients";echo " 重复次数:$rounds 次";echo " 间隔时间:$sleeptime 秒";echo " 测试地址:$url";if [ $min != 0 ];thenecho " 最小并发数:$min";fiif [ $max != 0 ];thenecho " 最大并发数:$max";fiif [ $step != 0 ];thenecho " 每轮并发递增:$step" fi# 指定输出文件名datestr=`date +%Y%m%d%H%I%S`outfile="$datestr.out";# runtest $cmd $outfile $rounds $sleeptimefunction runtest() { # 输出命令 echo ""; echo ' 当前执行命令:' echo " $cmd" echo '------------------------------' # 开始执行测试 cnt=1 while [ $cnt -le $rounds ]; do echo "第 $cnt 轮 开始" $cmd >> $outfile  echo "" >> $outfile echo "第 $cnt 轮 结束" echo '----------------------------' cnt=$(($cnt+1)) if [ $cnt -le $rounds ]; then echo "等待 $sleeptime 秒" sleep $sleeptime fi  done}temp=$cmd;if [ $flag != 0 ]; then cur=$min over=0 while [ $cur -le $max ] do cmd="$temp -c$cur $url" runtest $cmd $outfile $rounds $sleeptime  cur=$(($cur+$step)) if [ $cur -ge $max -a $over != 1 ]; then cur=$max  over=1 fi doneelse  cmd="$cmd -c$clients $url" runtest $cmd $outfile $rounds $sleeptime fi# 分析结果if [ -f $outfile ]; thenecho '本次测试结果如下:'echo '+------+----------+----------+---------------+---------------+---------------+--------------------+--------------------+'echo '| 序号 | 总请求数 | 并发数 | 失败请求数 | 每秒事务数 | 平均事务(ms) | 并发平均事务数(ms) |  总体传输字节数 |'echo '+------+----------+----------+---------------+---------------+---------------+--------------------+--------------------+'comp=(`awk '/Complete requests/{print $NF}' $outfile`) concur=(`awk '/Concurrency Level:/{print $NF}' $outfile`)fail=(`awk '/Failed requests/{print $NF}' $outfile`)qps=(`awk '/Requests per second/{print $4F}' $outfile`)tpr=(`awk '/^Time per request:(.*)(mean)$/{print $4F}' $outfile`)tpr_c=(`awk '/Time per request(.*)(mean, across all concurrent requests)/{print $4F}' $outfile`)trate=(`awk '/Transfer rate/{print $3F}' $outfile`)for ((i=0; i<${#comp[@]}; i++))do echo -n "|" printf '%6s' $(($i+1))  printf "|" printf '%10s' ${comp[i]} printf '|'  printf '%10s' ${concur[i]} printf '|' printf '%15s' ${fail[i]} printf '|' printf '%15s' ${qps[i]} printf '|' printf '%15s' ${tpr[i]} printf '|' printf '%20s' ${tpr_c[i]} printf '|' printf '%20s' ${trate[i]} printf '|' echo ''; echo '+-----+----------+----------+---------------+---------------+---------------+--------------------+--------------------+'doneecho ''fi

三、测试示例

sh ab-test-tool.sh -N 100000 -C 100 -R 2 -I 100 -X 500 -J 80 -S 5 -U 'http://...'

apache中ab压力测试工具怎么用


四、ab信息说明

Server Software:    Apache/2.2.19  ##apache版本 
Server Hostname:    vm1.xxx.com  ##请求的机子 
Server Port:      80 ##请求端口

Document Path:     /xxx.html 
Document Length:    25 bytes ##页面长度

Concurrency Level:   100 ##并发数 
Time taken for tests:  0.273 seconds ##共使用了多少时间 
Complete requests:   1000  ##请求数 
Failed requests:    0  ##失败请求 
Write errors:      0  
Total transferred:   275000 bytes ##总共传输字节数,包含http的头信息等 
HTML transferred:    25000 bytes ##html字节数,实际的页面传递字节数 
Requests per second:  3661.60 [#/sec] (mean) ##每秒多少请求,这个是非常重要的参数数值,服务器的吞吐量 
Time per request:    27.310 [ms] (mean) ##用户平均请求等待时间 
Time per request:    0.273 [ms] (mean, across all concurrent requests) ##服务器平均处理时间,也就是服务器吞吐量的倒数 
Transfer rate:     983.34 [Kbytes/sec] received ##每秒获取的数据长度

Connection Times (ms) 
       min mean[+/-sd] median  max 
Connect:    0  1  2.3   0   16 
Processing:   6  25  3.2   25   32 
Waiting:    5  24  3.2   25   32 
Total:     6  25  4.0   25   48

Percentage of the requests served within a certain time (ms) 
 50%   25 ## 50%的请求在25ms内返回 
 66%   26 ## 60%的请求在26ms内返回 
 75%   26 
 80%   26 
 90%   27 
 95%   31 
 98%   38 
 99%   43 
100%   48 (longest request)

以上是“apache中ab压力测试工具怎么用”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

apache中ab压力测试工具怎么用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

apache中ab压力测试工具怎么用

这篇文章主要介绍apache中ab压力测试工具怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、脚本说明该脚本支持ab大多常用参数,如果你需要更多参数,可以通过修改本脚本,加入你想要的即可。该脚本支持:1)、批
2023-06-02

ab压力测试工具怎么使用

本篇内容主要讲解“ab压力测试工具怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ab压力测试工具怎么使用”吧!一、ab的原理ab的原理:ab命令会创建多个并发访问线程,模拟多个访问者同时
2023-06-28

Apache自带的ab压力测试工具的实现

目录Apache Bench 简介ab的原理ab的安装参数介绍ab测试案例示例2Apache Bench 简介 Apache Bench 是 Apache 服务器自带的一个web压力测试工具,简称 ab 。 ab 非常实用,它不仅可以对ap
2022-07-21

apache压力测试工具怎么用

本篇内容主要讲解“apache压力测试工具怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“apache压力测试工具怎么用”吧!写在前面在学习ab工具之前,我们需了解几个关于压力测试的概念吞吐
2023-06-30

Apache下压力测试工具ab的安装与使用

本篇内容主要讲解“Apache下压力测试工具ab的安装与使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Apache下压力测试工具ab的安装与使用”吧!导读性能测试工具目前最常见的有以下几种:
2023-06-03

网站压力测试工具-ab工具apachebench使用过程

apachebench是apache自带的压力测试工具。ab不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。ab工具上手学习较快,可以提供需要的基本性能指标,但没有图形化结果,不能监控。因此可以用作临时紧急任务和简单测试。
2022-11-21

如何使用Apache压力测试工具

这篇文章将为大家详细讲解有关如何使用Apache压力测试工具,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.下载进入apache官网 http://httpd.apache.org/ 下载apache即
2023-06-14

Apache压力测试工具的安装使用

1.下载 进入apache官网 http://httpd.apache.org/ 下载apache即可 2.启动ab 以windows环境下,apache安装路径为C:\apache\Apache24\为例 打开cmd命令,输入命令到bin
2022-06-04

使用ab工具对服务器进行API压力测试

目录1 系统吞吐量的简单介绍2 测试方法2.1 客户端测试工具2.1.1 GET方法2.1.2 POST方法2.1.3 测试结果解读2.2服务器端检测方法3 实际测试3.1 shell脚本3.2 C++提取程序:使用了libxl.h4 测试
2022-06-04

如何使用ab工具对服务器进行API压力测试

本篇文章为大家展示了如何使用ab工具对服务器进行API压力测试,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1 系统吞吐量的简单介绍一个系统的吞度量(承压能力)与request对CPU的消耗、外部接
2023-06-22

HTTP/FTP压力测试工具siege怎么用

HTTP/FTP压力测试工具siege怎么用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。HTTP/FTP压力测试工具siege压力测试可以检测服务器的承载能力
2023-06-04

如何使用jmeter压力测试工具

今天就跟大家聊聊有关如何使用jmeter压力测试工具,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。什么是压力测试顾名思义:压力测试,就是 被测试的系统,在一定的访问压力下,看程序运行
2023-05-31

MySQL压力测试工具Mysqlslap的使用

一、MySQL自带的压力测试工具 Mysqlslap mysqlslap是mysql自带的基准测试工具,该工具查询数据,语法简单,灵活容易使用.该工具可以模拟多个客户端同时并发的向服务器发出查询更新,给出了性能测试数据而且提供了多种引擎的性
2022-05-14

Linux中如何使用stress压力测试工具

Linux中如何使用stress压力测试工具,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。参数说明:-? 显示帮助信息-v 显示版本
2023-06-16

MySQL 之压力测试工具的使用方法

一、MySQL自带的压力测试工具——Mysqlslapmysqlslap是mysql自带的基准测试工具,该工具查询数据,语法简单,灵活容易使用.该工具可以模拟多个客户端同时并发的向服务器发出查询更新,给出了性能测试数据而且提供了多种引擎的性
2022-05-15

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录