Скорость передачи данных при увеличении размеров запросов - PullRequest
2 голосов
/ 29 ноября 2011

Пару недель назад я реализовал простой многопоточный 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

уровень параллелизма только делает это распределение менее крутым.

В чем причина такого поведения?

Спасибо

1 Ответ

0 голосов
/ 30 ноября 2011

Вы могли бы довольно легко сузить, где задержка с некоторыми микро-тестами на сервере.Однако помните, что микропроцессоры могут привести вас к неправильному пути оптимизации.Тем не менее, вы должны хотя бы иметь представление о том, на что тратится ваше время.

Если вы генерируете полезную нагрузку на лету, на самом деле это может быть генерация данных, которая становится проблемой набольшие размеры.MTU на вашей обратной линии связи должен быть намного выше, чем стандарт для линий LAN / WAN (1500), поэтому это не должно быть фактором.

...