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

标签 sockets load stress-testing bsd

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

我该怎么做(在不使我的本地计算机崩溃的情况下->我尝试使用fork来创建许多客户端;此外,我也有一个虚拟机)。
如果有人对如何实现有任何想法或一般指导,那将意味着很多。

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

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

谢谢 !

最佳答案

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

如果您想实现自己的压力测试框架,建议您不要使用代码的阻塞特性,而应采用可以很好地扩展的并行设计。那么,限制因素几乎就是您的CPU。

具有两个物理服务器将是理想的选择,这样您的压力测试就不会影响服务器的CPU(以及响应时间)。另外,您的VM会浪费宝贵的CPU时间。

关于sockets - 使用BSD套接字模拟服务器负载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6370675/

相关文章:

c# - 我需要端口转发吗?

ios - 通过蓝牙或无线在 iPad/iPhone 上建立局域网的简单方法

c - Linux 在使用 PPID 1 重新启动时不会清理资源(套接字)

脚本内的 javascript src

jquery - 如何用jsf reRender或ajax加载替换html内容,并用AngularJS重新绑定(bind)新的DOM?

c# - "connection has been disabled"快速创建/删除数据库时的错误信息

c# - TcpListener 常量错误 每个地址只使用一次

jquery - $(window).load Chrome,Safari问题

linux - 在负载测试期间收集服务器信息的工具

C Programming::accept() 在压力测试中工作然后不工作