压力测试工具Webbench源码分析 · 大专栏

您所在的位置:网站首页 webbench 压力测试工具Webbench源码分析 · 大专栏

压力测试工具Webbench源码分析 · 大专栏

2022-12-21 19:02| 来源: 网络整理| 查看: 265

webbench 首先 fork 出多个子进程,每个子进程都循环做 web 访问测试。子进程把访问的结果通过 pipe 告诉父进程,父进程做最终的统计结果。

项目地址:http://home.tiscali.cz/~cz210552/webbench.html

程序结构

主函数:

main 函数解析参数,调用 bench();

bench():

检查目标服务器是否可用:

i = Socket(proxyhost==NULL?host:proxyhost,proxyport);

创建 pipe;(pipe 声明:mypipe[2];) 若成功返回 0,否则返回-1。其中 pipe[0] 是读管道,pipe[1] 是写管道。参考网址。

开辟子进程。 for(i=0;ih_addr, hp->h_length); } ad.sin_port = htons(clientPort);

sock = socket(AF_INET, SOCK_STREAM, 0); if (sock < 0) return sock; if (connect(sock, (struct sockaddr *)&ad, sizeof(ad)) < 0) return -1; return sock; }

Webbench 的安装和使用

参考

[root@node1 ~]# yum install -y gcc ctags [root@node1 ~]# wget http://www.ha97.com/code/webbench-1.5.tar.gz [root@node1 ~]# tar -xvf webbench-1.5.tar.gz [root@node1 data]# cd webbench-1.5 [root@node1 webbench-1.5]# make && make install ##这一步可能遇到如下错误,手动创建目录即可 cc -Wall -ggdb -W -O -c -o webbench.o webbench.c webbench.c: In function 鈥榓larm_handler鈥

webbench.c:77: warning: unused parameter 鈥榮ignal鈥 cc -Wall -ggdb -W -O -o webbench webbench.o ctags .c install -s webbench /usr/local/bin install -m 644 webbench.1 /usr/local/man/man1 install: cannot create regular file `/usr/local/man/man1': No such file or directory make: ** [install] Error 1 [root@node1 webbench-1.5]# mkdir /usr/local/man [root@node1 webbench-1.5]# mkdir /usr/local/man/man1 [root@node1 webbench-1.5]# make &&make install make: Nothing to be done for `all'. install -s webbench /usr/local/bin install -m 644 webbench.1 /usr/local/man/man1 install -d /usr/local/share/doc/webbench install -m 644 debian/copyright /usr/local/share/doc/webbench install -m 644 debian/changelog /usr/local/share/doc/webbench

usage()

[root@node1 data]# webbench --help webbench [option]... URL -f|--force Don't wait for reply from server. -r|--reload Send reload request - Pragma: no-cache. -t|--time Run benchmark for seconds. Default 30. -p|--proxy Use proxy server for request. -c|--clients Run HTTP clients at once. Default one. -9|--http09 Use HTTP/0.9 style requests. -1|--http10 Use HTTP/1.0 protocol. -2|--http11 Use HTTP/1.1 protocol. --get Use GET request method. --head Use HEAD request method. --options Use OPTIONS request method. --trace Use TRACE request method. -?|-h|--help This information. -V|--version Display program version.

执行命令:webbench -c 10 http://www.baidu.com命令就是用 10 个客户端并发百度网站 30 秒,但是在执行的命令报错了:Invalid URL syntax - hostname don't ends with '/'。解决办法就是在 url 后加个 “/”

执行结果反馈内容:

[root@node1 data]# webbench -c 10 -t 30 http://www.baidu.com/ Webbench - Simple Web Benchmark 1.5 Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://www.baidu.com/ 10 clients, running 30 sec.

Speed=2254 pages/min, 4188293 bytes/sec. Requests: 1110 susceed, 17 failed.

其他一些压测工具:http_loadapache benchseigewrk

测评的网址:参考 1,参考 2。



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3