AsyncHTTPClient max_clients

时间:2017-03-03 00:07:11

标签: tornado libcurl pycurl

我在龙卷风中设置了最大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

1 个答案:

答案 0 :(得分:2)

您可能还需要increase the file descriptor limit。 Curl最多可以使用4x(default of CURLM_MAXCONNECTS)个文件描述符max_clients(除了进程可能需要的其他文件描述符)。

可能存在特定于您的环境,网络或您正在抓取的网站的其他限制。