老汉谈——压力测试

http_load

http_load并行运行多个http获取,来测试web服务器的吞吐量。然而不像大多数这样的测试客户端,它运行在一个单一的过程中,所以它不拘泥客户端机器。它可以配置https取回

你给它一个文件包含url的列表可能获取,一个标志指定如何开始连接(通过利率或模拟用户的数量),和一个标记指定何时退出(一定次数后取回或给定的运行时间)。也有可选的校验和旗帜,节流,随机抖动,进展报告。示例运行

  • 官网: http://www.acme.com/software/http_load/
    在这里插入图片描述
% ./http_load -rate 5 -seconds 10 urls
49 fetches, 2 max parallel, 289884 bytes, in 10.0148 seconds
5916 mean bytes/connection
4.89274 fetches/sec, 28945.5 bytes/sec
msecs/connect: 28.8932 mean, 44.243 max, 24.488 min
msecs/first-response: 63.5362 mean, 81.624 max, 57.803 min
HTTP response codes:
  code 200 -- 49

安装

[root@localhost local]# tar -zvxf http_load-09Mar2016.tar.gz 

编译

[root@localhost local]# cd http_load-09Mar2016/
[root@localhost http_load-09Mar2016]# make && make install

测试

  • http_load -p 10 -s 6 url . 这里url不能是url地址,只能是文件或目录,否则如下
[root@localhost work]# http_load -p 10 -s 6 http://locahost:8080
http://locahost:8080: No such file or directory
  • 编写url列表文件 root@localhost work]# vim urllist.txt
[root@localhost work]# http_load -p 10 -s 5 urllist.txt
  • 结果如下
[root@localhost work]# http_load -p 10 -s 5 urllist.txt
92004 fetches, 10 max parallel, 2.02409e+06 bytes, in 5.00006 seconds
22 mean bytes/connection
18400.6 fetches/sec, 404812 bytes/sec
msecs/connect: 0.129601 mean, 5.09 max, 0.02 min
msecs/first-response: 0.27154 mean, 2.848 max, 0.061 min
HTTP response codes:
  code 200 -- 92004

在这里插入图片描述

  • 结果分析:

    92004 fetches, 10 max parallel, 2.02409e+06 bytes, in 5.00006 seconds

    : 运行92004次,最大并发10次,总计输出数量 2.02409e+06 字节,运行时间5.00006秒

    22 mean bytes/connection

    : 每一连接平均传输的数据量2.02409e+06/92004=5916

    18400.6 fetches/sec, 404812 bytes/sec

    : 每秒的响应请求为18400.6,每秒传递的数据为404812bytes/sec

    msecs/connect: 0.129601 mean, 5.09 max, 0.02 min

    : 每连接的平均响应时间是0.129601 msecs,最大的响应时间 5.09 msecs,最小的响应时间 0.02 msecs

    msecs/first-response: 63.5362 mean, 81.624 max, 57.803 min

    **: ** 每个请求的平均响应时间是 63.5362msecs,最大的响应时间是 81.624msecs,最小的响应时间是 57.803msecs。

    HTTP response codes: code 200 – 49
    : 打开响应页面的类型是200,如果403的类型过多,那可能要注意是否系统遇到了瓶颈。

    特殊说明:我们一般会关注到的指标是fetches/sec、msecs/connect
    他们分别对应的常用性能指标参数: Qpt-每秒响应用户数和response time,每连接响应用户时间。
    测试的结果主要也是看这两个值。当然仅有这两个指标并不能完成对性能的分析,我们还需要对服务器的cpu、men进行分析,才能得出结论

参数说明

-parallel 简写-p :含义是并发的用户进程数
-fetches 简写-f :含义是总计的访问次数
-rate 简写-r :含义是每秒的访问频率
-seconds 简写-s :含义是总计的访问时间

http_load -p 并发访问进程数 -f 访问总数 需要访问的URL文件
http_load -r 每秒访问频率 -s 访问时间 需要访问的U

常见错误 (摘抄https://www.jianshu.com/p/c869f96ed929)

1)byte count wrong
http_load在处理时会去关注每次访问同一个URL返回结果(即字节数)是否一致,若不一致就会抛出byte count wrong

2)too many open files
系统限制的open files太小,ulimit -n 修改open files值即可

3)无法发送大请求 (请求长度>600个字符)
默认接受请求的buf大小 http_load.c

4)Cannot assign requested address
客户端频繁的连服务器,由于每次连接都在很短的时间内结束,导致很多的TIME_WAIT,以至于用光了可用的端口号,所以新的连接没办法绑定端口,所以要改客户端机器的配置,
在sysctl.conf里加:
net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_timestamps=1 开启对于TCP时间戳的支持,若该项设置为0,则下面一项设置不起作用
net.ipv4.tcp_tw_recycle=1 表示开启TCP连接中TIME-WAIT sockets的快速回收

常用方式:

# 模拟qps200,连续压测15分钟,错误日志输出到2.log文件中,最终的压测结果输出到1.txt文件中。
http_load –r 200 –s 900 http.txt 2>2.log 1>1.txt

Web Bench 1.5

Web Bench是一个非常简单的WWW或代理服务器基准测试工具

使用fork()模拟多个客户端,可以使用HTTP / 0.9 HTTP / 1.1请求。这个基准测试不是很现实,但是它可以测试如果你的HTTPD可以真的一次处理,许多客户(尝试运行cgi)没有采取你的机器。显示页/分钟和字节/秒。可以用在更积极的与- f开关模式。

http://home.tiscali.cz/~cz210552/webbench.html

官网: http://home.tiscali.cz/~cz210552/webbench.html

安装

[root@localhost local]# tar zxvf webbench-1.5.tar.gz

C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images

编译

  • 可能会报错
[root@localhost local]# make && make install
make: *** No targets specified and no makefile found.  Stop.
  • 则根据提示建立目录
[root@localhost local]# cd webbench-1.5/
[root@localhost webbench-1.5]# mkdir -m 644 -p /usr/local/man/main1
[root@localhost webbench-1.5]# make && make install

在这里插入图片描述
在这里插入图片描述

测试

[root@localhost webbench-1.5]# webbench -c 10 -t 5 http://localhost:8080/
  • 结果如下
[root@localhost webbench-1.5]# webbench -c 10 -t 5 http://localhost:8080/
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://localhost:8080/
10 clients, running 5 sec.

Speed=828816 pages/min, 2348312 bytes/sec.
Requests: 69068 susceed, 0 failed.

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值