我在龙卷风中设置了最大AsyncHTTPClients的数量,如下所示:
AsyncHTTPClient.configure("tornado.curl_httpclient.CurlAsyncHTTPClient",max_clients=2000)
如您所见,我正在使用curl_httpclient。假设硬件可以处理更多客户端,那么操作系统中的任何其他软件限制(在本例中为Linux)或libcurl都将存在。例如,如果我设置了max_clients = 10000,那么这只是开箱即用吗?
此外,如果我有一个运行龙卷风的多个进程,每个进程使用AsyncHTTPClient,每个进程都会获得max_clients,还是所有进程共享的max_clients数?
好的,所以文件说明:
如果给出了其他关键字参数,它们将被传递给 创建每个子类实例的构造函数。关键字参数 max_clients确定同时获取的最大数量() 可以在每个IOLoop上并行执行的操作。额外 可以支持参数,具体取决于中的实现类 使用
因为每个进程都有自己的IOLoop我想这意味着每个进程最多可以使用max_clients
答案 0 :(得分:2)
您可能还需要increase the file descriptor limit。 Curl最多可以使用4x(default of CURLM_MAXCONNECTS
)个文件描述符max_clients
(除了进程可能需要的其他文件描述符)。
可能存在特定于您的环境,网络或您正在抓取的网站的其他限制。