HTTPS压测工具wrk

网友投稿 355 2022-09-13

HTTPS压测工具wrk

一、预先安装需求项

为了安装顺利,不受权限的限制,首先可以把用户切换为root用户​​​# su​​​ + 输入root用户对应的密码1.1 安装支持后续操作的一些组件

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc

1.2 安装编译套件

yum install gcc perl-ExtUtils-MakeMaker

二、安装or升级版本管理工具git

2.1 查看git版本

git --version

若libiconv字符集转换库没安装而出现错误:error: /utf8.c:463: undefined reference to 'libiconv' 解决方案:依次执行如下命令(无以上error则略过)

# wget tar zxvf libiconv-1.14.tar.gz# cd libiconv-1.14# ./configure --prefix=/usr/local/libiconv# make && make install

2.2 卸载旧版本git 在CentOS6.3系统环境下,如果以上查询的版本比较早(如:1.7.1版本),对后续的安装wrk会受到阻碍,故需升级git到新版本(如:2.2.1版本) 卸载旧版本的目录为:

yum remove git

2.3 安装新版本git 1)下载git 2.2.1进行编译安装;2)将git添加到环境变量

# wget tar -zxvf v2.2.1# cd git-2.2.1# make configure# ./configure --prefix=/usr/local/git --with-iconv=/usr/local/libiconv# make all doc# make install install-doc install-html# echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc# source /etc/bashrc

再次查看安装新版本git后的效果:

git --version

三、正式安装wrk

切换到src目录,再次检验是否安装git

​​# cd /usr/local/src​​​​# yum install git -y​​

3.1 克隆wrk安装文件到本地

# git clone 编译wrk文件

cd wrk# make

若出现错误:xmlto: command not found,可以尝试重新安装xmlto:​​# yum -y install xmlto​​3.3 创建软链接到指定目录

# ln -s /usr/local/src/wrk/wrk /usr/local/bin

3.4 检验wrk是否安装成功

# wrk

[root@instance-lnjc135w wrk]# wrkUsage: wrk Options:-c, --connections Connections to keep open-d, --duration Duration of test-t, --threads Number of threads to use-s, --script Load Lua script file-H, --header Add header to request--latency Print latency statistics--timeout Socket/request timeout-v, --version Print version detailsNumeric arguments may include a SI unit (1k, 1M, 1G)Time arguments may include a time unit (2s, 2m, 2h)

四、wrk性能测试

4.1 配置待测网站的IP指向到内网 根据测试环境的要求,进行环境配置,比如有的网站不允许在外网正式环境进行压测,就需要配置一个指向内网的环境进行测试 打开hosts编辑器​​​# vim /etc/hosts​​ 配置当前环境的hosts,格式为:

# IP1 url1# IP2 url2...# IPx urlx

ESC键从编辑模式切换到正常模式,然后输入​​:wq​​保存并退出

4.2 测试/]# wrk -t2 -c10 -d15 --latency 15s test @ threads and 10 connectionsThread Stats Avg Stdev Max +/- StdevLatency 35.64ms 1.31ms 48.59ms 79.38%Req/Sec 138.40 13.52 151.00 89.00%Latency Distribution50% 35.50ms75% 36.13ms90% 37.09ms99% 40.33ms4151 requests in 15.05s, 60.83MB readSocket errors: connect 0, read 29, write 0, timeout 0Requests/sec: 275.72Transfer/sec: 4.04MB

4.3 wrk参数含义 1)语法中的参数

-t:需要模拟的线程数-c:需要模拟的连接数-d:测试的持续时间--timeout:超时的时间--latency:显示延迟统计

2)结果显示的指标

Latency:响应时间Req/Sec:每个线程每秒钟的完成的请求数Avg:平均Max:最大Stdev:标准差

命令的使用

建立20个TCP连接,使用两个线程,用时2分钟,对-c 20 -t 2 -d 10s 10s test @ 2 threads and 20 connections Thread Stats Avg Stdev Max +/- Stdev Latency 830.07ms 79.77ms 1.05s 68.97% Req/Sec 15.77 11.41 50.00 69.09% 232 requests in 10.04s, 225.66KB read (10.04s处理了232个请求数,读取了60.30KB的数据)Requests/sec: 23.11 一秒完成请求数23.11次Transfer/sec: 22.48KB 每秒读取22.48KB

也可以发送POST请求进行压测

wrk -c 20 -t 2 -d 10 -H "host: dream.com" --script=post.txt ​​--latency --timeout 1s

post.txt

wrk.method = "POST"

   

wrk.body = "x=1&y=2"

   

wrk.headers["Content-Type"] = "application/x-www-form-urlencoded"

解析同上。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:php7 加密模式AES AES-128-CBC 填充PKCS7Padding 加密hex 字符集utf8
下一篇:unserialize(): Error at offset 0 of 30330 bytes
相关文章

 发表评论

暂时没有评论,来抢沙发吧~