Webbench结果分析及原理
- 格式:pdf
- 大小:63.46 KB
- 文档页数:1
Webbench结果分析及原理
1.结果
$ webbench -c 100 -t 10 http://baidu.com/Webbench - Simple Web Benchmark 1.5Copyright (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⽤户,也就是fork n个⼦进程,每个⼦进程分别调⽤benchcore在要求时间内循环发送请求报⽂。
1.1 影响结果的因素?如何提⾼?
2.实现原理
Webbench实现的核⼼原理是:⽗
1. 进程fork若⼲个⼦进程,每个⼦进程在⽤户要求时间或默认的时间内对⽬标web循环发出实际访问请求;2. ⽗⼦进程通过管道进⾏通信,⼦进程通过管道写端向⽗进程传递在若⼲次请求访问完毕后记录到的总信息;3. ⽗进程通过管道读端读取⼦进程发来的相关信息,⼦进程在时间到后结束,⽗进程在所有⼦进程退出后统计并给⽤户显⽰最后的测试结果,然后退出。1.命令⾏解析,getopt()
2.构造http请求报⽂build_request
3.压⼒测试:bench函数
每个fork的⼦进程都调⽤benchcore函数,在要求时间内发送请求报⽂,改函数可记录请求的成功次数、失败次数、以及服务器回复的字节数。