使用BSD套接字模拟服务器负载

时间:2011-06-16 10:55:19

标签: sockets load stress-testing bsd

我在C中使用阻塞TCP套接字,我希望在有很多同时连接的情况下模拟服务器上的高负载,然后我想在这个高负载时间内测量通过浏览器访问服务器所需的时间(服务器了解HTTP标头)。 此外,每个客户端请求都快速结束(发送HTTP标头 - 获取文本)。

我该怎么做(没有崩溃我的本地机器 - >我尝试使用fork来创建许多客户端;另外,我也有一个虚拟机)。 如果有人有关于如何做到这一点的想法或一些一般性指示,那将意味着很多。

编辑:我需要使用自己的客户端运行它,它使用OpenSSL库的修改版本连接到我的SSL / TLS服务器,因此我无法使用外部测试工具。

我想知道如何构建客户端和服务器。我不太了解其他套接字而不是阻塞套接字,我只是浏览了Richard Stevens的UNIX网络编程书,但我想知道是否有人能指出确切的解决方案。

谢谢!

1 个答案:

答案 0 :(得分:1)

最简单的解决方法是下载现有的压力测试框架,例如fwptt(http://fwptt.sourceforge.net/)。

如果你想实现自己的压力测试框架,我建议你失去代码的阻塞性,并采用可以精确扩展的并行设计。限制因素几乎就是你的CPU。

拥有两台物理服务器是理想的,因此您的压力测试不会影响服务器的CPU(因此也不会影响响应时间)。你的VM也耗尽了宝贵的CPU时间。