简介
Webench是一款轻量级的网站测压工具,并发是通过fork子进程来实现的,测试结果也受自身网速、以及自身主机的性能与内存的限制,性能好、内存大的主机可以模拟的并发就明显要多。
找了几台机器看了一下cat /proc/sys/kernel/pid_max
,值有32768、65536、4194304。
理论上可以模拟的并发和最大进程数有关,但是现实搞这么多明显很困难。
可传入的参数有:
测试使用一下./webbench -c 100 -t 10 http://www.baidu.com/
可以看到我的机器性能不太行,不能fork太多的进程。
代码比较简单,我加了点注释,链接放在最后了。
流程
Webbench实现的主要流程很简单,如果学过linux c的应该很容易看懂:
- 父进程fork若干个子进程
- 每个子进程对目标web循环发出实际访问请求
- 父子进程通过管道进行通信
- 子进程通过管道写端向父进程传递在若干次请求访问完毕后记录到的总信息
- 父进程通过管道读端读取子进程发来的相关信息
- 子进程在时间到后结束
- 父进程在所有子进程退出后统计并给用户显示最后的测试结果
百度云链接
链接:https://pan.baidu.com/s/1vYJkXiNttoFaWSfCh_Ke_w
提取码:et1b