广告
返回顶部
首页 > 资讯 > 精选 >apache中ab压力测试工具怎么用
  • 884
分享到

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

2023-06-02 16:06:59 884人浏览 八月长安
摘要

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

这篇文章主要介绍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压力测试工具怎么用”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!

--结束END--

本文标题: apache中ab压力测试工具怎么用

本文链接: https://www.lsjlt.com/news/230606.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • apache中ab压力测试工具怎么用
    这篇文章主要介绍apache中ab压力测试工具怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、脚本说明该脚本支持ab大多常用参数,如果你需要更多参数,可以通过修改本脚本,加入你想要的即可。该脚本支持:1)、批...
    99+
    2023-06-02
  • ab压力测试工具怎么使用
    本篇内容主要讲解“ab压力测试工具怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ab压力测试工具怎么使用”吧!一、ab的原理ab的原理:ab命令会创建多个并发访问线程,模拟多个访问者同时...
    99+
    2023-06-28
  • Apache自带的ab压力测试工具的实现
    目录Apache Bench 简介ab的原理ab的安装参数介绍ab测试案例示例2Apache Bench 简介 Apache Bench 是 Apache 服务器自带的一个web压力测试工具,简称 ab 。 ab 非常实...
    99+
    2022-07-21
    Apacheab压力测试工具 Apache压力测试工具
  • Apache下压力测试工具ab的安装与使用
    本篇内容主要讲解“Apache下压力测试工具ab的安装与使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Apache下压力测试工具ab的安装与使用”吧!导读性能测试工具目前最常见的有以下几种:...
    99+
    2023-06-03
  • apache压力测试工具怎么用
    本篇内容主要讲解“apache压力测试工具怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“apache压力测试工具怎么用”吧!写在前面在学习ab工具之前,我们需了解几个关于压力测试的概念吞吐...
    99+
    2023-06-30
  • 网站压力测试工具-ab工具apachebench使用过程
    目录关于压力测试相关名词解释ab工具简介下载ab工具启动ab工具开始测试测试结果分析关于登录的问题总结apache bench是apache自带的压力测试工具。ab不仅可以对apac...
    99+
    2022-11-21
    网站压力测试工具 ab工具 apache bench
  • 如何使用Apache压力测试工具
    这篇文章将为大家详细讲解有关如何使用Apache压力测试工具,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。下载进入apache官网 http://httpd.apache.org/ 下载apache即可启...
    99+
    2023-06-14
  • Apache压力测试工具的安装使用
    1.下载 进入apache官网 http://httpd.apache.org/ 下载apache即可 2.启动ab 以windows环境下,apache安装路径为C:\apache\Apache24\为例 打开cmd命...
    99+
    2022-06-04
    Apache压力测试工具 Apache压力测试工具安装
  • 使用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++提取程序:使用了l...
    99+
    2022-06-04
    ab工具进行服务器压力测试 服务器压力测试
  • 如何使用ab工具对服务器进行API压力测试
    本篇文章为大家展示了如何使用ab工具对服务器进行API压力测试,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1 系统吞吐量的简单介绍一个系统的吞度量(承压能力)与request对CPU的消耗、外部接...
    99+
    2023-06-22
  • PHP中的压力测试工具
    PHP是一种广泛用于Web开发的脚本语言,它被用于开发许多大型的网站和应用程序。在PHP应用程序开发的过程中,性能优化和压力测试是非常关键的,因为这将有助于你确保应用程序在实际运行过程中能够承受高负载的用户流量,而不会出现性能问题或系统崩溃...
    99+
    2023-05-23
    工具 PHP 压力测试
  • HTTP/FTP压力测试工具siege怎么用
    HTTP/FTP压力测试工具siege怎么用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。HTTP/FTP压力测试工具siege压力测试可以检测服务器的承载能力...
    99+
    2023-06-04
  • MySQL基准压力测试工具MySQLSlap怎么用
    小编给大家分享一下MySQL基准压力测试工具MySQLSlap怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!常用的解释:[...
    99+
    2022-10-18
  • MySQL中如何使用压力测试工具
    这篇文章主要为大家展示了MySQL中如何使用压力测试工具,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。一、MySQL自带的压力测试工具——Mysqlslapm...
    99+
    2022-10-18
  • mysql数据库压力测试工具mysqlslap怎么用
    这篇文章将为大家详细讲解有关mysql数据库压力测试工具mysqlslap怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。mysqlslap是从MySQL的5.1.4...
    99+
    2022-10-18
  • 如何使用jmeter压力测试工具
    今天就跟大家聊聊有关如何使用jmeter压力测试工具,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。什么是压力测试顾名思义:压力测试,就是 被测试的系统,在一定的访问压力下,看程序运行...
    99+
    2023-05-31
    jmeter
  • MySQL压力测试工具Mysqlslap的使用
    一、MySQL自带的压力测试工具 Mysqlslap mysqlslap是mysql自带的基准测试工具,该工具查询数据,语法简单,灵活容易使用.该工具可以模拟多个客户端同时并发的向服务器发出查询更新,给出了性能测试数...
    99+
    2022-05-14
    MySQL Mysqlslap MySQL 压力测试
  • Linux中如何使用stress压力测试工具
    Linux中如何使用stress压力测试工具,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。参数说明:-        显...
    99+
    2023-06-16
  • mysql中自带压力测试工具mysqlslap介绍
    下面一起来了解下mysql中自带压力测试工具mysqlslap介绍,相信大家看完肯定会受益匪浅,文字在精不在多,希望mysql中自带压力测试工具mysqlslap这篇短内容是你想要的。测试示例1查询300次...
    99+
    2022-10-18
  • MySQL 之压力测试工具的使用方法
    一、MySQL自带的压力测试工具——Mysqlslap mysqlslap是mysql自带的基准测试工具,该工具查询数据,语法简单,灵活容易使用.该工具可以模拟多个客户端同时并发的向服务器发出查询更新,给出了性能测...
    99+
    2022-05-15
    MySQL 压力测试工具 MySQL mysqlslap MySQL 压力测试
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作