鱼塘

好多好多好多鱼

0%

多进程 - webbench原理解析

Webbench是Radim Kolar在1997年写的一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。

工作原理

使用 fork 复制多个进程进行并发请求,使用 pipe 进行数据汇总

具体步骤

  1. 主函数进行必要的准备工作,进入 bench 开始压测
  2. bench 函数使用fork模拟出多个客户端,调用socket并发请求,每个子进程记录自己的访问数据,并切入管道
  3. 父进程从管道读取子进程的输出信息
  4. 使用alarm函数进行时间控制,到时间后会差生SIGALRM信号,调用信号处理函数使子进程停止
  5. 最后只留下父进程将所有子进程的输出数据汇总计算,输出到屏幕上

相关内容

  1. 进程间通信方式
  2. 信号机制及处理
  3. 网络编程