У меня есть сервер с nginx установлен на нем для обслуживания некоторых файлов для загрузки. Я тоже не изменился конфигурация по умолчанию из nginx.
Проблема в том, что когда я пытаюсь загрузить с этого сервера, кажется, что есть ограничение для подключения, потому что, когда я пытаюсь загрузить с аксель с 10 подключением речь идет о 3X быстрее, чем wget с одним подключением.
Как я могу снять это ограничение, чтобы пользователи могли загружать с этого сервера с максимальной скоростью за одно соединение?
использует аксель быстрее из-за моей конфигурации или из-за характеристик сети и Интернета?
ОБНОВИТЬ:
После первого комментария, указывающего на то, что мое сравнение было неправильным, я изменил свой тест на axel -n 1
Vs. axel -n 10
. Сейчас между ними нет большой разницы, но использование более одного соединения все же немного быстрее. (780 КБ / с за одно соединение и 830 КБ / с за десять подключений).
Эта разница не имеет отношения к nginx конфигурация?
Эта разница, вероятно, связана не с nginx, а, скорее, с вашим стеком TCP (либо на клиенте, либо на сервере).
Наиболее очевидное различие заключается в том, что при использовании 10 одновременных подключений вы будете использовать в 10 раз больше памяти для буферов TCP, чем при одном подключении. Это также означает, что, увеличивая размер буфера, у вас есть хорошие шансы улучшить пропускную способность одного соединения (в то же время вы, вероятно, уменьшите количество подключений, которые ваш сервер может обрабатывать - у каждой истории всегда есть две стороны).
Существуют десятки параметров для настройки стека TCP. Увидеть tcp(7)
справочную страницу для получения дополнительной информации.
Если вы просто хотите поиграть с размерами буфера, вы можете сделать это через некоторые файлы в /proc
:
/proc/sys/net/core/rmem_max
/proc/sys/net/core/wmem_max
/proc/sys/net/ipv4/tcp_rmem
/proc/sys/net/ipv4/tcp_wmem
Не забывайте, что это относится как к серверу, так и к клиенту.