为什么大量的libcurl连接会锁定我的Windows系统?

时间:2013-03-01 15:56:50

标签: c++ c windows network-programming libcurl

我创建了一个简单的应用程序,它创建了一个libcurl对象并开始发送http消息。我将它们指向我本地网络上运行netcat作为服务器的另一个盒子。我在我的Windows机器上启动了200个。 netcat服务器响应了许多请求,但是由于超时,很多人都错过了大部分请求。

您可以找到完整的来源here,实际代码为here。如果你在那里逛逛,你可以看到我如何构建和运行测试应用程序。

在几分钟内,系统将无法响应。我被迫按下电源按钮再次访问。它不响应telnet,远程调试,RDP,虽然它会响应ping。它不会创建崩溃转储。

这里真正的问题是我不明白如何在它发生时捕获它,所以我不知道如何调试它。我希望有人知道正确的诊断方法。

我可以通过实现一些QoS类型行为来避免这种情况。除非我可以衡量实际锁定系统的内容,否则我担心我只会掩盖这个问题。

如果使用/ BELOWNORMAL启动进程,它似乎可以更快地再现。

在安全模式下,我无法在同一台机器上重现这一点。我无法在我的Mac上重现这一点。我已禁用AV /防火墙,没有区别。我检查了我的驱动程序,它们似乎是最新的。我已经在具有不同硬件配置的多台机器上实现了它。

我已经监控了我知道检查的所有指标,cpu,ram,NPP,端口,句柄,线程,似乎没什么可惊人的。我已经启动600并没有太大的区别,所以我认为我没有达到一些硬资源限制。

我已经问过libcurl邮件列表,他们声称libcurl不应该这样做,尽管他们没有输入问题是什么。

0 个答案:

没有答案