Apache Bench 压测工具( 二 )


Apache Bench 压测工具

文章插图
 
 
 4.扩展Semaphore 和 CountDownLatch 模拟 ab并发请求Semaphore 和 CountDownLatch 模拟 ab 发送2000个请求 200并发,不懂 Semaphore 和 CountDownLatch 自行百度吧 。。。
// 请求总数 public static int clientTotal = 2000; // 同时并发执行的线程数 public static int threadTotal = 200; // 信号量 final Semaphore semaphore = new Semaphore(threadTotal); // 计数器闭锁 final CountDownLatch countDownLatch = new CountDownLatch(clientTotal); for (int i=0;i<clientTotal;i++){ executorService.execute(new Runnable() { @Override public void run() { try { semaphore.acquire(); add(); semaphore.release(); } catch (Exception e){ System.out.println(e); } // 每个线程执行时计数器都减1 countDownLatch.countDown(); } }); }###  5.ab命令所有的 options 贴图 Options are: -n requests #执行的请求数,即一共发起多少请求 。-c concurrency #请求并发数 。-t timelimit #测试所进行的最大秒数 。其内部隐含值是-n 50000,它可以使对服务器的测试限制在一个固定的总时间以内 。默认时,没有时间限制 。-s timeout #指定每个请求的超时时间,默认是30秒 。-b windowsize #指定tcp窗口的大小,单位是字节 。-B address #指定在发起连接时绑定的ip地址是什么 。-p postfile #指定要POST的文件,同时要设置-T参数 。-u putfile #指定要PUT的文件,同时要设置-T参数 。-T content-type #指定使用POST或PUT上传文本时的文本类型,默认是'text/plain' 。-v verbosity #设置详细模式等级 。-w #将结果输出到html的表中 。-i #使用HEAD方式代替GET发起请求 。-y attributes #以表格方式输出时,设置html表格tr属性 。-z attributes #以表格方式输出时,设置html表格th或td属性 。-C attribute #添加cookie,比如'Apache=1234' 。(可重复) -H attribute #为请求追加一个额外的头部,比如'Accept-Encoding: gzip' 。(可重复) -A attribute #对服务器提供BASIC认证信任 。用户名和密码由一个:隔开,并以base64编码形式发送 。无论服务器是否需要(即,是否发送了401认证需求代码),此字符串都会被发送 。-P attribute #对一个中转代理提供BASIC认证信任 。用户名和密码由一个:隔开,并以base64编码形式发送 。无论服务器是否需要(即, 是否发送了401认证需求代码),此字符串都会被发送 。-X proxy:port #指定代理服务器的IP和端口 。-V #打印版本信息 。-k #启用HTTP KeepAlive功能,即在一个HTTP会话中执行多个请求 。默认时,不启用KeepAlive功能 。-d #不显示"percentage served within XX [ms] table"的消息(为以前的版本提供支持) 。-q #如果处理的请求数大于150,ab每处理大约10%或者100个请求时,会在stderr输出一个进度计数 。此-q标记可以抑制这些信息 。-g filename #把所有测试结果写入一个'gnuplot'或者TSV(以Tab分隔的)文件 。此文件可以方便地导入到Gnuplot,IDL,Mathematica,Igor甚至Excel中 。其中的第一行为标题 。-e filename #产生一个以逗号分隔的(CSV)文件,其中包含了处理每个相应百分比的请求所需要(从1%到100%)的相应百分比的(以微妙为单位)时间 。由于这种格式已经“二进制化”,所以比'gnuplot'格式更有用 。-r #当收到错误时不要退出 。-h #输出帮助信息 -Z ciphersuite #指定SSL/TLS密码套件 -f protocol #指定SSL/TLS协议(SSL3, TLS1, TLS1.1, TLS1.2 or ALL) 5.总结 本篇主要讲解了Apache Bench的基本使用 以及对压测结果的返回进行分析 包括 吞吐量 平均并发请求时间等等 对于一些有并发的接口 可以自己测测。。。
个人博客网站 https://www.askajohnny.com 欢迎访问!
本文由博客一文多发平台 https://openwrite.cn?from=article_bottom 发布!




推荐阅读