几款常用压测工具使用小结

ab

ab是apache自带的压力测试工具,使用起来非常方便.

安装

如果安装了apache, 那么ab已经安装好了,如果不想安装apache的话,可以通过以下方式安装ab

# ubuntu
sudo apt-get install apache2-utils

# centos
yum -y install httpd-tools

压测

在压测前,需要关注几个选项,通过 ab -help 查看

Options are:
    -n requests     要执行的请求次数
    -c concurrency  并发数量
    -s timeout      响应时间

执行

ab -n 1000 -c 100 -s 1 http://127.0.0.1:1080/event?config_name=mysql_config

# 总共100个并发执行1000此请求,超时时间为1s

结果分析

在执行上述测试命令后,得到如下结果,主要关注以下几个指标:

  • Failed requests:失败的请求
  • Requests per second:也就是常说的QPS, 每秒查询率,这是一个平均值
  • Time per request:完成一个请求所花费的时间
  • Transfer rate: 网络传输速度。 对于大文件的请求测试,这个值很容易成为系统瓶颈所在 要确定该值是不是瓶颈,需要了解客户端和被测服务器之间的网络情况,包括网络带宽和网卡速度等信息。
Server Software:
Server Hostname:        127.0.0.1
Server Port:            1080

Document Path:          /event?config_name=mysql_config
Document Length:        0 bytes

Concurrency Level:      100
Time taken for tests:   0.137 seconds
Complete requests:      1000
Failed requests:        0
Total transferred:      75000 bytes
HTML transferred:       0 bytes
Requests per second:    7275.11 [#/sec] (mean)
Time per request:       13.745 [ms] (mean)
Time per request:       0.137 [ms] (mean, across all concurrent requests)
Transfer rate:          532.84 [Kbytes/sec] received

Connection Times (ms)
                min  mean[+/-sd] median   max
Connect:        0    1   1.0      1       5
Processing:     1   12   5.9     11      30
Waiting:        1   11   5.9     11      29
Total:          1   13   6.1     13      30

Percentage of the requests served within a certain time (ms)
  50%     13
  66%     15
  75%     17
  80%     18
  90%     22
  95%     25
  98%     28
  99%     29
 100%     30 (longest request)

wrk

wrk 是一款c语言开发的现代的http性能基准测试工具,使用简单,功能强大。

安装

安装可以从github上下载源码编译安装 wrk github地址

压测

wrk的命令选项并不多,很容易使用

Usage: wrk <options> <url>
  Options:
    -c, --connections <N>  建立的连接
    -d, --duration    <T>  执行测试时间
    -t, --threads     <N>  线程数量   

    -s, --script      <S>  使用lua脚本(非常强大的功能,有兴趣可以深入研究)
    -H, --header      <H>  为每一个HTTP请求添加HTTP头
        --latency          在压测结束后,打印延迟统计信息
        --timeout     <T>  超时时间
    -v, --version          Print version details      

  Numeric arguments may include a SI unit (1k, 1M, 1G)
  Time arguments may include a time unit (2s, 2m, 2h)

wrk -c100 -t10 -d30s http://127.0.0.1:1080/event?config_name=mysql_config

# 10个线程100个连接压测30s

结果分析

wrk生成的结果报告比较简洁,主要关注的点和ab差不多

  • Requests/sec: QPS
  • Transfer/sec: 网络传输速度
Running 30s test @ http://127.0.0.1:1080/event?config_name=mysql_config
  10 threads and 100 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    21.02ms   92.04ms   1.05s    97.79%
    Req/Sec     1.22k   229.72     2.38k    75.47%
  365483 requests in 30.07s, 26.14MB read
Requests/sec:  12152.63
Transfer/sec:      0.87MB

jmeter

jmeter 是由java编写的一个GUI测试工具,功能强大且结果多样

安装

安装可以去 apache jmeter 下载

使用

建立 Plan

image

建立Thread Group

建立好 Plan后就可以建立 Thread Group 了, 建立方式

选中Plan 后, Edit > Add > Threads > Thread Group

image

Thread Group 可以设置线程的一些参数,主要是 Number of Threads(users) 和 Loop Count

添加Listener

Listener主要生成一些结果报告,添加方式为

选中Thread Group后 Edit > Add > Listener

image

可以看到有很多结果报告,我平时主要用到以下几个结果报告

  • View Results Tree
  • Aggregate Report
  • Graph Results
  • View Results Table

View Results Tree

这个报告会生成请求树,点击可以查看每个请求的信息

image

Aggregate Report

这个报告会生成请求的聚合统计信息, 主要参数就是QPS, 传输速度等

image

Graph Results

强大的图形报告结果

image

图形结果一些说明

  • No of Samples(样本数): 代表向服务器发送的请求数目
  • Deviation(偏离):代表服务器相应时间变化的数据的分布
  • Latest Sample(最新样本): 表示服务器相应最后一个请求的时间
  • Throughtput(吞吐率):这里是服务器每分钟对数据的处理量
  • Average(平均值): 表示总运行的时间除以发送给服务器的请求数
  • Median(中间值): 代表有一半的服务器时间低于该值,而另一半高于该值

根据图形结果得到的一些分析

  1. 吞吐率起步的时候比较低,随着请求数量越来越多,吞吐率先增后减
  2. 偏离值还不错,保持一个很平稳的状态 如果偏离数量随着请求数量越来越大, 说明服务器越来越不稳定

作者:顾少书
链接:https://www.jianshu.com/p/8c622e304e14
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

原文地址:https://www.cnblogs.com/friendwrite/p/10676366.html

时间: 2024-08-11 07:40:47

几款常用压测工具使用小结的相关文章

常用压测工具

安装yum install httpd-tools -y ab 测试命令 ab -c 1000 -n 1000 http://www.baidu.com 常用参数 -n 执行的请求数量-c 并发请求个数 其他参数 -t 测试所进行的最大秒数-p 包含了需要POST的数据的文件-T POST数据所使用的Content-type头信息-k 启用HTTP KeepAlive功能,即在一个HTTP会话中执行多个请求,默认时,不启用KeepAlive功能 wget  http://download.joe

web压测工具http_load原理分析

原文:web压测工具http_load原理分析 一.前言 http_load是一款测试web服务器性能的开源工具,从下面的网址可以下载到最新版本的http_load: http://www.acme.com/software/http_load/ (页面实在太简陋……) 十分令人欣慰的是,这个软件一直在保持着更新(不像webbench,已经是十年的老古董了.webbench的源码分析请参考:http://www.cnblogs.com/xuning/p/3888699.html ),并且更新频率

Http压测工具wrk使用指南

用过了很多压测工具,却一直没找到中意的那款.最近试了wrk感觉不错,写下这份使用指南给自己备忘用,如果能帮到你,那也很好. 安装 wrk支持大多数类UNIX系统,不支持windows.需要操作系统支持LuaJIT和OpenSSL,不过不用担心,大多数类Unix系统都支持.安装wrk非常简单,只要从github上下载wrk源码,在项目路径下执行make命令即可. git clone https://github.com/wg/wrk make make之后,会在项目路径下生成可执行文件wrk,随后

[软件测试]网站压测工具Webbench源码分析

一.我与webbench二三事 Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能.Webbench使用C语言编写,下面是其下载链接: http://home.tiscali.cz/~cz210552/webbench.html 说到这里,我赶脚非常有必要给这个网站局部一个截图,如下图: 第一次看到这张图片,着实吃了一精!居然是2004年最后一次更新,我和我的小伙伴们都惊呆了.不过既然现在大家还都

一个简单的websocket压测工具tcpkail

简介 tcpkali是一个高性能的负载生成工具,用于TCP和WebSocket服务器.采用C/C++开发并在BSD协议下授权,是一个开源的web压测工具,类似于apache的ab,但tcpkail同时支持websocket和httpd协议. 关于tcpkail的一些特性 高效的 CPU 利用率,可使用所有 CPU 核 允许同时打开大量的并发链接 (--connections) 允许限制单个连接的吞吐量 (--channel-bandwidth or --message-rate) 允许指定首页消

压测工具的实践

压测工具apache ab /webbentch 1.Apache的ab命令模拟多线程并发请求,测试服务器负载压力,也可以测试nginx.lighthttp.IIS等其它Web服务器的压力.ab命令  对发出负载的计算机要求很低,既不会占用很多CPU,也不会占用太多的内存,但却会给目标服务器造成巨大的负载.ab是最常用  的压测工具. 2.ebbech能测试处在相同硬件上,不同服务的性能以及不同硬件上同一个服务的运行状况.webBech的标准测试可以向我们展示服务器的两项 内容:每秒钟相应请求数

web服务器压测工具siege、ab

web服务器压测工具也挺多,这里只介绍我用过的这两种--siege(for linux).ab(for windows). 一.siege 1.简介: Siege是一款开源的压力测试工具,设计用于评估WEB应用在压力下的承受能力.可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行.siege可以从您选择的预置列表中请求随机的URL.所以siege可用于仿真用户请求负载,而ab则不能.但不要使用siege来执行最高性能基准调校测试

压测工具siege和wrk

siege压测工具 安装: wget http://download.joedog.org/siege/siege-3.0.8.tar.gz cd siege-3.0.8 ./configure make make install 验证安装结果:输入siege -V 如果输出了版本号就代表安装没问题 Siege命令常用参数 -c 200 指定并发数200-r 5 指定测试的次数5-f urls.txt 制定url的文件-i internet系统,随机发送url-b 请求无需等待 delay=0-

swingbench-免费的oracle性能压测工具

SwingBench介绍: SwingBench由负载生成器,协调器和集群概述组成.该软件使得能够生成负载并且将图表的事务/响应时间映射. SwingBench可用于演示和测试诸如实际应用集群,在线表重建,备用数据库,在线备份和恢复等技术 SwingBench附带的代码包括6个基准,OrderEntry,SalesHistory,TPC-DS Like,JSON,CallingCircle和StressTest .. OrderEntry基于Oracle11g / Oracle12c附带的"oe