在面试九识的时候,被问到了WebBench的原理,当时没答上来,这里做一个整理
源码【带注释】:GitHub - YukunJ/annotated-webbench-1.5: bilingually annotated Webbench-1.5
webbench是一个轻量的压测工具,可以对网站模拟并发请求,控制时间,是否使用缓存,是否等待服务器回复等等。可以测出中小型网站的承受能力。
webbench的标准测试可以展示服务器的两项内容:每秒钟相应请求数和每秒钟传输数据量。webbench支持对含有SSL的安全网站例如电子商务网站进行静态或者动态的性能测试。webbench最多可以模拟3万个并发连接去测试网站的负载能力。
webbench的原理是父进程fork若干个子进程,每个子进程在用户要求时间或默认的时间内对目标web循环发出实际访问请求,父进程通过管道进行通信,子进程通过管道写端向父进程传递在若干次请求访问完毕后记录到的总信息,父进程通过管道读端读取子进程发来的相关信息,子进程在时间到后结束,父进程在所有子进程退出后统计并给用户显示最后的测试结果,然后退出。
答案: 基本的WebBench性能测试命令如下所示:
webbench -c 并发用户数 -t 测试时间 URL
其中, -c 指定并发用户数, -t 指定测试时间, URL 是要测试的网站URL。