Пару недель назад я реализовал простой многопоточный HTTP-сервер для своего программного задания. В этом задании пользователи указали размер документа через браузер (например, localhost: port / 250 для документа длиной 250 байт), и моя программа создала HTML-страницу с таким размером.
И я проверил его производительность с помощью инструмента для тестирования под названием apachebench. Производительность была в основном такой, какой я ожидал от многопоточной программы.
Но, был интересный результат теста, который меня сейчас беспокоит.
Скорость передачи запросов резко уменьшается с увеличением размера запросов.
Вот мой пример результатов теста apachebench с использованием аргументов командной строки;
ab -n 1000 http://localhost:port/RequestSize
RequestSize TX
(bytes) (KB/s)
70 212,21
150 268,75
250 364,58
350 447,23
500 497,36
650 496,73
800 491,48
1000 432,63
1250 405,17
1750 347,19
3000 241,95
5000 161,46
10000 84,58
20000 44,05
уровень параллелизма только делает это распределение менее крутым.
В чем причина такого поведения?
Спасибо