运行网络蜘蛛时网关/调制解调器过载

运行网络蜘蛛时网关/调制解调器过载

问题:运行时,网络上的所有其他设备都会出现严重延迟和网页超时、电子邮件、聊天中断等情况。

这是来自 stackoverflow 的交叉帖子,我可能使用了错误的网站!

细节:

使用 libcurl 来实现

Debian 7 - Intel i5 - 8 GB 内存

Comcast Business 75/15 连接 (Cisco DPC3939B)

使用 Parallel ForkManager 运行 75 个线程(测试最多 200 个)

20 个线程几乎可以接受 - 但对于我的需求来说太慢了

超时:CURLOPT_CONNECTTIMEOUT_MS,5000 + CURLOPT_TIMEOUT_MS,10000

使用 resolv.conf 中的选项 rotate 进行循环 DNS

所有连接都指向唯一的独立网站 - 此处无重复使用连接

我假设每秒的连接数是线程数*超时,这个计算错误吗?

注意:服务器资源几乎未受影响 - 平均负载为 .10,这主要是 MySQL 在跟踪事情。蜘蛛和服务器运行完美无缺,如果我愿意,我可以实现每天 800 万次访问。只是在这个过程中不能使用网络来工作。

多年来,我最大的顿悟是更改其他设备使用的 DNS 服务器 - 以避免 Linux 机器使用的 DNS 服务器造成的任何超时或限制。但这并没有达到我所希望的效果。

其他设备(例如我的 Windows 7 笔记本电脑)无法访问多个选项卡,网站可能会超时 - 无法在传输大量小文件时运行 rsync - 但可以运行 speedtest.net - 一旦加载,可用带宽仍接近我购买的带宽的 90%。因此,下载单个大文件不是问题,但移动和打开更多连接是个问题。

我曾经通过 dd-wrt ​​路由器连接服务器,只是为了获取有关正在发生的事情的更多信息 - 如果运行 200 个线程,活动连接最终将达到最大值 4096。我真的觉得网关/调制解调器无法处理所有连接 - 但我也觉得每秒 100 个连接应该是可以接受的 - 而且有些东西没有正确关闭。

相关内容