AsyncHTTPClient max_clients

Я установил максимальное количество AsyncHTTPClients в торнадо следующим образом:

AsyncHTTPClient.configure("tornado.curl_httpclient.CurlAsyncHTTPClient",max_clients=2000)

Как видите, я использую curl_httpclient. Предполагая, что аппаратное обеспечение может обрабатывать больше клиентов, будут ли какие-либо другие ограничения программного обеспечения в ОС (в данном случае Linux) или libcurl, которые будут на месте. Например, если я установлю max_clients=10000, должно ли это работать сразу?

Кроме того, если у меня есть несколько процессов, запускающих торнадо, каждый из которых использует AsyncHTTPClient, будет ли каждый процесс получать max_clients или число max_clients будет общим для всех процессов?

ОБНОВИТЬ

Итак, в документации указано, что:

Если заданы дополнительные аргументы ключевого слова, они будут переданы конструктору каждого созданного экземпляра подкласса. Аргумент ключевого слова max_clients определяет максимальное количество одновременных операций fetch(), которые могут выполняться параллельно на каждом IOLoop. Дополнительные аргументы могут поддерживаться в зависимости от используемого класса реализации.

Итак, поскольку каждый процесс имеет свой собственный IOLoop, я думаю, это означает, что каждый процесс может использовать до max_clients


person johhny B    schedule 03.03.2017    source источник


Ответы (1)


Возможно, вам также потребуется увеличить ограничение файлового дескриптора. Curl может использовать до 4-х (по умолчанию CURLM_MAXCONNECTS) файловых дескрипторов. у вас есть max_clients (в дополнение к другим файловым дескрипторам, которые могут понадобиться вашему процессу).

Могут быть и другие ограничения, характерные для вашей среды, сети или сайтов, которые вы сканируете.

person Ben Darnell    schedule 05.03.2017
comment
что, если max_clients=10, однако есть 20 вызовов выборки в IOLoop? он вернется только для 10 из них? - person Dejell; 15.10.2017
comment
Первые 10 стартуют сразу. Когда один из них закончится, он вернется, и начнется один из других. - person Ben Darnell; 16.10.2017