1.下载http_load ,下载地址:http://acme.com/software/http_load/http_load-12mar2006.tar.gzhtml
[root@localhost ~]#cd /usr/local [root@localhost local]#mkdir http_load [root@localhost local]#chmod 777 http_load [root@localhost local]#cd http_load [root@localhost http_load]# wget http://acme.com/software/http_load/http_load-12mar2006.tar.gz
2.解压安装http_load服务器
#tar -zxvf http_load-12mar2006.tar.gz #cd http_load-12mar2006 #make && make install
这里tar解压包的时候出现错误 gzip: stdin: not in gzip format,并发
缘由是这个压缩包没有用gzip格式压缩,因此不用加z参数,囧(因此不是全部的解压包都得用 -zxvf)!socket
改为使用tar -xvf http_load-12mar2006.tar.gztcp
3.使用http_load测试
基本用法:http_load -p 并发访问进程数 -s 访问时间 须要访问的URL文件fetch
参数简单说明一下
-parallel 简写-p :含义是并发的用户进程数。
-fetches 简写-f :含义是总计的访问次数
-rate 简写-p :含义是每秒的访问频率
-seconds 简写-s :含义是总计的访问时间url
新建url.txt文件,每一个url一行spa
http://www.baidu.com/ http://www.baidu.com/blog/ http://www.baidu.com/signin/ http://www.baidu.com/signup/ http://www.baidu.com/article/123.html http://www.baidu.com/article/1233.html
示例:http_load -p 100 -s 60 url.txtcode
#100个并发执行60秒
测试结果:852 fetches, 100 max parallel, 1.45158e+07 bytes, in 60 seconds
说明在上面的测试中运行了852个请求,最大的并发进程数是100,总计传输的数据是1.45158e+07bytes,运行的时间是60秒
17037.3 mean bytes/connection
说明每一链接平均传输的数据量1.45158e+07 / 852 =17037.3
14.2 fetches/sec, 241930 bytes/sec
说明每秒的响应请求为14.2 ,每秒传递的数据为241930 bytes/sec
msecs/connect: 0.165399 mean, 15.884 max, 0.031 min
说明每链接的平均响应时间是0.165399 msecs,最大的响应时间15.884 msecs,最小的响应时间0.031 msecs
msecs/first-response: 6634.48 mean, 7501.29 max, 462.391 min
83 bad byte counts
HTTP response codes:
code 200 -- 852
1.
(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的快速回收