我有一个python应用程序,它使用eventlet Green线程(1000个绿色线程池)来建立HTTP连接。每当客户端发出超过1000个并行请求时,就会发生ETIMEDOUT。任何人都可以帮助我解决可能的原因吗?
答案 0 :(得分:0)
在这种情况下最可能的原因是:DNS服务器请求限制。您可以通过取消DNS解析(请求http://{ip-address}/path
,忘记添加正确的Host:
标头)轻松检查是否属于这种情况。如果你进行网页抓取,这些步骤不是可选的,你绝对必须:
backoff algorithm
。如何判断错误是否是暂时的?主要是研究,试验和错误。您可能会遇到的高并发性的下一个流行问题是操作系统对打开的连接和文件描述符数量的限制。搜索sysctl somaxconn
和ulimit nofile
以解决这些问题。