NoneNginx не ограничивает скорость соединения
У меня есть сервер с установленным nginx, который обслуживает некоторые файлы для загрузки. Я также не изменил конфигурацию по умолчанию nginx.
Проблема в том, что когда я пытаюсь загрузить с этого сервера, кажется, что есть ограничение для соединения, потому что, когда я пытаюсь скачать с акселем с 10 подключением, это примерно в 3 раза быстрее, чем wget с одним подключением.
Как я могу снять это ограничение, чтобы пользователи могли загружаться с этого сервера с максимальной скоростью одним подключением?
Использование акселя быстрее из-за моей конфигурации или из-за особенностей сети и интернета?
ОБНОВИТЬ:
После первого комментария, который показывает, что мое сравнение было неверным, я изменил свой тест на axel -n 1
Против axel -n 10
, Теперь между ними нет большой разницы, но использование более одного соединения все еще немного быстрее. (780 КБ / с для одного подключения и 830 КБ / с для десяти подключений).
Эта разница не имеет отношения к конфигурации nginx?
1 ответ
Эта разница, вероятно, не из-за nginx, а скорее из-за вашего TCP-стека (на клиенте или на сервере).
Наиболее очевидное отличие состоит в том, что при использовании 10 одновременных подключений вы будете использовать в 10 раз больше памяти для буферов TCP, чем при одном подключении. Это также означает, что, увеличив размер буфера, вы получите хороший шанс повысить пропускную способность одного соединения (в то же время вы, вероятно, сократите количество соединений, которые может обрабатывать ваш сервер - у каждой истории всегда есть две стороны).
Есть десятки параметров для настройки стека TCP. Увидеть tcp(7)
Страница man для получения дополнительной информации.
Если вы просто хотите поиграть с размерами буфера, вы можете сделать это через несколько файлов в /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
Не забудьте, что это относится как к серверу, так и к клиенту.