Как apachebench решает разделить запросы между параллельными клиентами?

#http #server #benchmarking #apachebench

#http #сервер #тестирование #верстак

Вопрос:

Я выполняю некоторые оценки веб-сервера с помощью apachebench и заметил, что количество запросов даже отдаленно не распределяется поровну между клиентами/уровнем параллелизма.

Например, с двумя серверными процессами, уровнем параллелизма 3 и 11 запросов, я обнаружил, что каждый из двух серверных процессов открывает соединение с одним из одновременных клиентов и принимает по 5 запросов от каждого, на которые он отвечает запрошенной веб-страницей. Затем, какой бы серверный процесс ни завершился первым, он открывает соединение с третьим параллельным клиентом, принимает последний запрос третьего клиента и отправляет только одну веб-страницу.

Как apachebench определяет разделение запросов между клиентами, а также почему он выбирает именно это разделение запросов? Это простой пример, но мне любопытно знать, почему среди одновременных клиентов не было чего-то вроде 4-3-3 вместо 5-5-1.

Спасибо.