Открыл для себя мир разнообразных алгоритмов управления контролем потока TCP в FreeBSD'шном стеке TCP/IP. По умолчанию используется sysctl net.inet.tcp.cc.algorithm=newreno, он же единственный в списке sysctl net.inet.tcp.cc.available.
Но достаточно было сделать kldload cc_chd и sysctl net.inet.tcp.cc.algorithm=chd, как скорость загрузки файла через ssh с удаленного сервера, до которого 11 хопов, 128ms rtt (и иногда бывают потери пакетов в незначительном количестве) стала разгоняться не до 55-60Kbyte/s, а до 75-80, а иногда и до 90Kbyte/s. Плюс первоначальный разгон скорости быстрее (видно невооруженным взглядом) и после притормаживаний сети шустрее возвращается на прежнюю скорость.
Эффект воспроизводимый. Оставлю так, пожалуй. Пробовал ещё cc_hd, cc_cubic, cc_htcp и cc_vegas, но в данных условиях они такого впечатляющего результата не дали. Все алгоритмы пробовал на дефолтных настройках.
Возможность тасовать эти алгоритмы появилась в FreeBSD, начиная с версий 8.3-RELEASE и 9.0-RELEASE.
Update: удалённый сервер - тоже FreeBSD, тоже под моим контролем и настройки менял синхронно на сервере и на клиенте.
no subject
Date: 2012-12-29 19:43 (UTC)Congestion Control Algorithms на клиенте не влияют на скорость загрузки.
это алгоритмы для серверной стороны
no subject
Date: 2012-12-29 19:54 (UTC)no subject
Date: 2012-12-29 19:57 (UTC)no subject
Date: 2012-12-29 20:51 (UTC)no subject
Date: 2012-12-30 05:29 (UTC)В манах. man cc_chd и так делее.
> и посмотреть на тесты?
Ну вот я тест показал :-) Других пока не знаю.
Можете провести свои - настраивать нужно именно сервер.
no subject
Date: 2012-12-29 21:28 (UTC)As always :)
no subject
Date: 2012-12-30 15:49 (UTC)As always :)