对方拒绝连接:111:连接被拒绝

对方拒绝连接:111:连接被拒绝

我在一台重型机器(使用 Ubuntu 12.04.3 LTS)上运行 25 个 scrapy 作业,每个作业都有 50 个并发请求。我使用代理发送请求。大约 15 分钟后,几乎所有请求都会出现此错误:

Connection was refused by other side: 111: Connection refused.

我联系了代理服务提供商,他们说这个问题是由于我这边处理套接字而引起的。

所以我的脚本发送了 1250 个并发请求。有什么办法可以找出问题所在吗?Ubuntu 上有连接限制吗?

答案1

我对此进行了少量研究,并在 serverfault 上发现了一个非常相似的帖子这里。看来您的内核可能是这种特殊情况下的限制因素,因为如此大量的并发连接并不常见。接受的答案指出,这可能是由于 ip_conntrack 表溢出造成的。

在 Ubuntu(服务器)上,修复方法是设置一些自定义参数/etc/sysctl.conf

net.ipv4.netfilter.ip_conntrack_max = 32768
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_tw_reuse = 0
net.ipv4.tcp_orphan_retries = 1
net.ipv4.tcp_fin_timeout = 25
net.ipv4.tcp_max_orphans = 8192
net.ipv4.ip_local_port_range = 32768    61000

请查看我链接的帖子,并始终非常小心具有自定义配置。

答案2

我遇到了同样的问题。尝试以超级用户身份运行蜘蛛。我直接使用命令运行蜘蛛scrapy runspider,然后尝试使用以下命令执行它:

sudo scrapy runspider

有效。

相关内容