Webbench结果分析及原理
作者:互联网
1.结果
$ webbench -c 100 -t 10 http://baidu.com/ Webbench - Simple Web Benchmark 1.5 Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software. Benchmarking: GET http://baidu.com/ 100 clients, running 10 sec. Speed=55764 pages/min, 14706 bytes/sec. Requests: 386 susceed, 8908 failed.
-c表示并发数,-t表示运行测试URL的时间(秒)
每秒钟响应请求数:55764 pages/min,每秒钟传输数据量14706bytes/sec. 并发100运行10秒后产生的TCP连接数386个,已经显示有8908个连接failed了,说明超负荷了。
webbench.c中根据-c参数n,Run <n> HTTP clients at once. Default one.
马上运行n哥HTTP用户,也就是fork n个子进程,每个子进程分别调用benchcore在要求时间内循环发送请求报文。
1.1 影响结果的因素?如何提高?
2.实现原理
https://blog.csdn.net/weixin_38333555/article/details/81457817
Webbench实现的核心原理是:父
- 进程fork若干个子进程,每个子进程在用户要求时间或默认的时间内对目标web循环发出实际访问请求;
- 父子进程通过管道进行通信,子进程通过管道写端向父进程传递在若干次请求访问完毕后记录到的总信息;
- 父进程通过管道读端读取子进程发来的相关信息,子进程在时间到后结束,父进程在所有子进程退出后统计并给用户显示最后的测试结果,然后退出。
1.命令行解析,getopt()
2.构造http请求报文build_request
3.压力测试:bench函数
每个fork的子进程都调用benchcore函数,在要求时间内发送请求报文,改函数可记录请求的成功次数、失败次数、以及服务器回复的字节数。
标签:fork,请求,Webbench,结果,sec,进程,原理,100 来源: https://www.cnblogs.com/BlueBlueSea/p/14986710.html