http压测工具wrk使用笔记

安装wrk

先从github上下载源码

git clone https://github.com/wg/wrk

然后cd到wrk目录,make安装

make

之后即可直接使用,并且再可执行目录下创建了软连接 /usr/local/bin/wrk -> /usr/local/src/wrk/wrk

wrk的基本使用

先看一下wrk的帮助

wrk --help
Usage: wrk <options> <url>
  Options:
 ? ?-c, --connections <N>  Connections to keep open #跟服务器建立并保持TCP连接数量,设置压测并发连接数
 ? ?-d, --duration ?  <T>  Duration of test ?##压测时间
 ? ?-t, --threads ?  <N>  Number of threads to use ?##指定压测的线程数

 ? ?-s, --script ? ?  <S>  Load Lua script file ?##可指定Lua脚本进行http压测,待详细研究
 ? ?-H, --header ? ?  <H>  Add header to request ?##为每一个HTTP请求添加HTTP头,???怎么加呢
 ? ? ? ?--latency ? ? ? ?  Print latency statistics ?##打印出延时分布的概率:Latency Distribution
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?50% ? ?1.10ms
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?75% ? ?2.23ms
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?90% ?83.63ms
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?99% ?482.18ms
 ? ? ? ?--timeout ?  <T>  Socket/request timeout ?##设置超时时间,
 ? ?-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)

<N>表示数值参数,支持国际单位(1k, 1M, 1G)
<T> 表示时间参数,支持时间单位(2s, 2m, 2h)

查看wrk版本,可发现wrk使用epoll机制

wrk -v
wrk 4.1.0 [epoll] Copyright (C) 2012 Will Glozer

压测一个内网HTTP服务

设置5个线程1000个连接测试,并在压测结果中输出响应延迟的信息

wrk -c1000 -t5 http://192.168.0.105:80 --latency --timeout 1s
Running 10s test @ http://192.168.0.105:80
? 5 threads and 1000 connections
? Thread Stats? Avg? ? ? Stdev? ? Max? +/- Stdev
? ? Latency? ? 26.28ms? 84.56ms 839.47ms? 91.76%
? ? (延迟时间)
? ? Req/Sec? ? 7.52k? ? 3.56k? 30.09k? ? 76.06%
? ? (每秒处理的请求数)
? Latency Distribution
? ? 50%? ? 1.31ms? (50%请求子啊1.31ms返回)
? ? 75%? ? 2.63ms? (75%请求子啊2.63ms返回)
? ? 90%? 51.78ms (90%请求子啊51.78ms返回)
? ? 99%? 407.39ms(99%请求子啊407.39ms返回)
? 369586 requests in 10.03s, 299.23MB read (10.03s内处理369586个请求,读取684.08MB数据)
? Socket errors: connect 0, read 19, write 0, timeout 139(请求异常数量)
Requests/sec:? 36858.65 (平均每秒处理完成请求数)
Transfer/sec:? ? 29.84MB (平均每秒传输数据大小)

wrk通过简单的命令行可以压测简单的GET请求,但要压测PUT、POST等更复杂的http服务,还可通过Lua脚本定制压测过程,待实践后补充。

原文地址:http://blog.51cto.com/13599730/2095492

时间: 2024-10-12 03:10:21

http压测工具wrk使用笔记的相关文章

Http压测工具wrk使用指南

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

压测工具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-

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

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

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

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

使用压测工具ab实现搭建的页面压测

使用压测工具(ab/webbench等)实现搭建的页面压测,要求通过调整apache的工作模式来对比最后性能. 配置文件位置:/etc/httpd/conf/httpd.conf <IfModule prefork.c>  //如果加载了这个模块,就实现一下配置,一个条件化模块加载 StartServers        8  //服务在启动时默认启动几个子进程 MinSpareServers    5  //最小空闲进程数量 MaxSpareServers    20  //最大空闲进程数量

一个简单的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来执行最高性能基准调校测试

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 ),并且更新频率