Jump to content
Калькуляторы

Производительный веб-сервер под статику

Есть у меня большое файлохранилище под Debian Linux. С этого хранилища я периодически забираю разные файлы и ничего лучше http не нашел - максимально универсально.

Качаю многопоточным download-менеджером, в 10-15 потоков. Скорость загрузки обычно ограничена в 5-6 Мбит/с, хотя если загрузки остановить, а затем стартануть, она иногда доходит до 70 Мбит/с.

На сервере стоит апач (модель prefork) и его наверняка можно подкрутить до нормальной работы, но я думаю для раздачи использовать nginx.

Есть ли рекомендации, что подкрутить в настройках для быстрой раздачи статики? Или можно с дефолтными параметрами запускать?

Share this post


Link to post
Share on other sites

Это шютка такая, да? 70 мегабит на статике...

 

У нас в серверной пень3 750 таскается. Он без тюнинга (кроме буферов и сомакс ядру) свою сотню в индейце даёт...

Share this post


Link to post
Share on other sites

70 Мбит/с это со стороны клиента ограничение. Так то сервер и больше может отдавать.

При загрузке торрентов я 700 Мбит/с видел, больше не успел (торрент скачался).

Share this post


Link to post
Share on other sites

25 минут назад, alibek сказал:

что подкрутить в настройках для быстрой раздачи статики? Или можно с дефолтными параметрами запускать?

Для целого одного пользователя -- думаю можно. :)

 

25 минут назад, alibek сказал:

Скорость загрузки обычно ограничена в 5-6 Мбит/с, хотя если загрузки остановить, а затем стартануть, она иногда доходит до 70 Мбит/с.

А вот покрутите-ка TCP Congestion Control. В sysctl.conf,

net.ipv4.tcp_congestion_control=illinois

это для начала. Если ядро достаточно свежее, то

net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr

для применения первой из этих строчек необходима перезагрузка.
 

Share this post


Link to post
Share on other sites

Вопрос-то тогда в чем? Что лучше для статики - apache или  nginx? Второе. И Сысоева почитать про то, что ему крутить.

Share this post


Link to post
Share on other sites

16 минут назад, snvoronkov сказал:

Вопрос-то тогда в чем? Что лучше для статики - apache или  nginx?

Скорее — можно использовать nginx «из коробки» или нужно тюнить?

 

17 минут назад, rm_ сказал:

А вот покрутите-ка TCP Congestion Control.

Попробую, спасибо.

Если в download-менеджере качать файлы по одному (даже в 20 потоков), то скорость загрузки ограничена клиентом, примерно 70 Мбит/с.

Если же качать, например, три файла одновременно по 5 потоков в каждом, то скорость загрузки получается маленькая (сотни килобит на каждом файле).

То есть дело не в самом сервере, а в его конфигурации. При этом в конфигурации указано:

<IfModule prefork.c>
    StartServers       8
    MinSpareServers    5
    MaxSpareServers   20
    ServerLimit      256
    MaxClients       256
    MaxRequestsPerChild  4000
</IfModule>

 

Share this post


Link to post
Share on other sites

nginx в дефолтной конфигурации может хорошо отдавать, с апачем в prefork не сравнить.

вообще, это уже больше 10 лет везде пишут :)

Share this post


Link to post
Share on other sites

ИМХО, разницы особой нет, может единицы %%. У меня какой-то атом апачем легко отдаёт гигабит, правда, сетевая интел, хоть и десктопная.

Надо смотреть, где затык у ТС, может в винте, может сетевая...

Share this post


Link to post
Share on other sites

9 часов назад, alibek сказал:

Если же качать, например, три файла одновременно по 5 потоков в каждом, то скорость загрузки получается маленькая (сотни килобит на каждом файле).

То есть дело не в самом сервере, а в его конфигурации.

Неочевидный вывод. Памяти под кэш файлухи точно достаточно?

Share this post


Link to post
Share on other sites

Может быть стоит сначала iperf погонять в режиме TCP? Есть мнение, что виноват congestion control на стороне сервера и апач тут не при чем.

Share this post


Link to post
Share on other sites

13 часов назад, rm_ сказал:

net.ipv4.tcp_congestion_control=illinois

Кусок хрени.

 

13 часов назад, rm_ сказал:

net.ipv4.tcp_congestion_control=bbr

Не пробовал.

htcp, hybla - оба давно есть и весьма годно пашут, при прочих тюнингах.

Share this post


Link to post
Share on other sites

19 минут назад, Ivan_83 сказал:

Кусок хрени.

Сравнивал их все на живом интернете с пингом до клиента около сотни и занятым ДЦшным аплоадом, иллиноис оказался заметно лучше остальных.

А ббр заметно лучше иллиноиса, главное отличие что фигачить на полный канал начинает почти сразу, а иллиноис запрягает подольше.

Edited by rm_

Share this post


Link to post
Share on other sites

Имхо процесс nginx как-то полегче. Но вот в данном случае это может быть и не почувствуется. С другой стороны зачем все же запускать монстра Апача, заточенного на динамические страницы "со свистелками... ", для статики? 

А еще есть легкий и быстрые http сервер kHTTPd - но я его не щупал.

 

Share this post


Link to post
Share on other sites

2 часа назад, rm_ сказал:

Сравнивал их все на живом интернете с пингом до клиента около сотни и занятым ДЦшным аплоадом, иллиноис оказался заметно лучше остальных.

А я сравнивал тем что находясь в мск смотрел иптв HD.

hybla была единственным кто давал смотреть стабильно.

В локалках htcp лучше, ибо при низком RTT он малость шустрее.

Илиноис и прочее старьё всегда приводило к лагам, вествуд вообще только садистам-мазахистам.

Share this post


Link to post
Share on other sites

Здесь было подробное объяснение сравнительных преимуществ для разных алгоритмов управления TCP congestion и дисциплин управления очередями (qdicsc) на каналах с разной пропускной способностью, но злобные манагеры cdnnow.ru заставили его стереть.

 

Скоро здесь должна появиться ссылка на статью с подробными выводами и методикой расчёта.

Share this post


Link to post
Share on other sites

Дахоспаде, всё вы со своей хюблой.

 

# sysctl net.ipv4.tcp_congestion_control=hybla
net.ipv4.tcp_congestion_control = hybla

# iperf3 -c XXXX
Connecting to host XXXX, port 5201
[  4] local 2001:41d0:1:8055::1 port 48640 connected to XXXX port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec   835 KBytes  6.84 Mbits/sec    1   79.0 KBytes       
[  4]   1.00-2.00   sec  1.71 MBytes  14.3 Mbits/sec    0    147 KBytes       
[  4]   2.00-3.00   sec  1.28 MBytes  10.7 Mbits/sec    2   90.1 KBytes       
[  4]   3.00-4.00   sec  1.28 MBytes  10.7 Mbits/sec    3   77.7 KBytes       
[  4]   4.00-5.00   sec   936 KBytes  7.67 Mbits/sec    2   26.3 KBytes       
[  4]   5.00-6.00   sec   624 KBytes  5.11 Mbits/sec    1   70.7 KBytes       
[  4]   6.00-7.00   sec   936 KBytes  7.67 Mbits/sec    1   92.9 KBytes       
[  4]   7.00-8.00   sec  1.34 MBytes  11.2 Mbits/sec    1   84.6 KBytes       
[  4]   8.00-9.00   sec   998 KBytes  8.18 Mbits/sec    3   30.5 KBytes       
[  4]   9.00-10.00  sec   312 KBytes  2.55 Mbits/sec    1   67.9 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  10.1 MBytes  8.50 Mbits/sec   15             sender
[  4]   0.00-10.00  sec  9.63 MBytes  8.07 Mbits/sec                  receiver
iperf Done.
# iperf3 -c XXXX
Connecting to host XXXX, port 5201
[  4] local 2001:41d0:1:8055::1 port 48646 connected to XXXX port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  6.60 MBytes  55.4 Mbits/sec    3    363 KBytes       
[  4]   1.00-2.00   sec  5.00 MBytes  41.9 Mbits/sec    1    331 KBytes       
[  4]   2.00-3.00   sec  1.25 MBytes  10.5 Mbits/sec    3   87.4 KBytes       
[  4]   3.00-4.00   sec  1.25 MBytes  10.5 Mbits/sec    3   43.0 KBytes       
[  4]   4.00-5.00   sec  1.25 MBytes  10.5 Mbits/sec    0    112 KBytes       
[  4]   5.00-6.00   sec  1.25 MBytes  10.5 Mbits/sec    3   45.8 KBytes       
[  4]   6.00-7.00   sec  0.00 Bytes  0.00 bits/sec    1   66.6 KBytes       
[  4]   7.00-8.00   sec  1.25 MBytes  10.5 Mbits/sec    0    133 KBytes       
[  4]   8.00-9.00   sec  2.50 MBytes  21.0 Mbits/sec    1    111 KBytes       
[  4]   9.00-10.00  sec  1.25 MBytes  10.5 Mbits/sec    0    178 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  21.6 MBytes  18.1 Mbits/sec   15             sender
[  4]   0.00-10.00  sec  19.1 MBytes  16.0 Mbits/sec                  receiver

# sysctl net.ipv4.tcp_congestion_control=illinois
net.ipv4.tcp_congestion_control = illinois

# iperf3 -c XXXX
Connecting to host XXXX, port 5201
[  4] local 2001:41d0:1:8055::1 port 48652 connected to XXXX port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  13.2 MBytes   111 Mbits/sec    2   1.21 MBytes       
[  4]   1.00-2.00   sec  11.2 MBytes  94.4 Mbits/sec   17   1.09 MBytes       
[  4]   2.00-3.00   sec  10.0 MBytes  83.9 Mbits/sec    4    709 KBytes       
[  4]   3.00-4.00   sec  8.75 MBytes  73.4 Mbits/sec    1    671 KBytes       
[  4]   4.00-5.00   sec  8.75 MBytes  73.4 Mbits/sec    0    728 KBytes       
[  4]   5.00-6.00   sec  10.0 MBytes  83.9 Mbits/sec    1    685 KBytes       
[  4]   6.00-7.00   sec  8.75 MBytes  73.4 Mbits/sec    2    657 KBytes       
[  4]   7.00-8.00   sec  7.50 MBytes  62.9 Mbits/sec    3    560 KBytes       
[  4]   8.00-9.00   sec  6.25 MBytes  52.4 Mbits/sec    5    491 KBytes       
[  4]   9.00-10.00  sec  6.25 MBytes  52.4 Mbits/sec    1    492 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  90.7 MBytes  76.1 Mbits/sec   36             sender
[  4]   0.00-10.00  sec  83.3 MBytes  69.9 Mbits/sec                  receiver
iperf Done.
# iperf3 -c XXXX
Connecting to host XXXX, port 5201
[  4] local 2001:41d0:1:8055::1 port 48656 connected to XXXX port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  14.4 MBytes   121 Mbits/sec    0   2.22 MBytes       
[  4]   1.00-2.00   sec  13.8 MBytes   115 Mbits/sec    0   2.71 MBytes       
[  4]   2.00-3.00   sec  10.0 MBytes  83.9 Mbits/sec   48   1.08 MBytes       
[  4]   3.00-4.00   sec  10.0 MBytes  83.9 Mbits/sec    6    557 KBytes       
[  4]   4.00-5.00   sec  8.75 MBytes  73.4 Mbits/sec    0    652 KBytes       
[  4]   5.00-6.00   sec  8.75 MBytes  73.4 Mbits/sec    0    739 KBytes       
[  4]   6.00-7.00   sec  8.75 MBytes  73.4 Mbits/sec    4    580 KBytes       
[  4]   7.00-8.00   sec  7.50 MBytes  62.9 Mbits/sec    2    564 KBytes       
[  4]   8.00-9.00   sec  7.50 MBytes  62.9 Mbits/sec    4    491 KBytes       
[  4]   9.00-10.00  sec  7.50 MBytes  62.9 Mbits/sec    0    588 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  96.9 MBytes  81.3 Mbits/sec   64             sender
[  4]   0.00-10.00  sec  86.0 MBytes  72.2 Mbits/sec                  receiver
iperf Done.

# sysctl net.ipv4.tcp_congestion_control=bbr
net.ipv4.tcp_congestion_control = bbr

# iperf3 -c XXXX
Connecting to host XXXX, port 5201
[  4] local 2001:41d0:1:8055::1 port 48660 connected to XXXX port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  16.4 MBytes   137 Mbits/sec    0   1.60 MBytes       
[  4]   1.00-2.00   sec  11.2 MBytes  94.4 Mbits/sec    0   1.61 MBytes       
[  4]   2.00-3.00   sec  11.2 MBytes  94.4 Mbits/sec   48   1.61 MBytes       
[  4]   3.00-4.00   sec  10.0 MBytes  83.9 Mbits/sec    0   1.63 MBytes       
[  4]   4.00-5.00   sec  11.2 MBytes  94.4 Mbits/sec    7   1.61 MBytes       
[  4]   5.00-6.00   sec  11.2 MBytes  94.4 Mbits/sec    0   1.61 MBytes       
[  4]   6.00-7.00   sec  11.2 MBytes  94.4 Mbits/sec   35   1.61 MBytes       
[  4]   7.00-8.00   sec  11.2 MBytes  94.4 Mbits/sec    1   1.61 MBytes       
[  4]   8.00-9.00   sec  10.0 MBytes  83.9 Mbits/sec    0   1.61 MBytes       
[  4]   9.00-10.00  sec  11.2 MBytes  94.4 Mbits/sec   48   5.55 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec   115 MBytes  96.6 Mbits/sec  139             sender
[  4]   0.00-10.00  sec   105 MBytes  88.1 Mbits/sec                  receiver
iperf Done.
# iperf3 -c XXXX
Connecting to host XXXX, port 5201
[  4] local 2001:41d0:1:8055::1 port 48670 connected to XXXX port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  16.4 MBytes   137 Mbits/sec    0   1.64 MBytes       
[  4]   1.00-2.00   sec  11.2 MBytes  94.4 Mbits/sec    1   1.64 MBytes       
[  4]   2.00-3.00   sec  10.0 MBytes  83.9 Mbits/sec    3   1.65 MBytes       
[  4]   3.00-4.00   sec  11.2 MBytes  94.4 Mbits/sec    6   1.65 MBytes       
[  4]   4.00-5.00   sec  11.2 MBytes  94.4 Mbits/sec    1   1.65 MBytes       
[  4]   5.00-6.00   sec  11.2 MBytes  94.4 Mbits/sec    0   1.67 MBytes       
[  4]   6.00-7.00   sec  11.2 MBytes  94.4 Mbits/sec   48   1.65 MBytes       
[  4]   7.00-8.00   sec  10.0 MBytes  83.9 Mbits/sec    1   1.64 MBytes       
[  4]   8.00-9.00   sec  11.2 MBytes  94.4 Mbits/sec    7   1.65 MBytes       
[  4]   9.00-10.00  sec  11.2 MBytes  94.4 Mbits/sec    2   5.55 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec   115 MBytes  96.6 Mbits/sec   69             sender
[  4]   0.00-10.00  sec   105 MBytes  88.0 Mbits/sec                  receiver
iperf Done.

72 мс пинг, 100 мбит сервер в OVH => 100 мбит домашний интернет в России.

Edited by rm_

Share this post


Link to post
Share on other sites

А где тесты htcp и cubic?

Кроме того, мне hybla давала стабильные 10-15 мегабит при потерях, когда всё остальное приводило к лагам иптв.

bbr тогда и в планах не было :)

Share this post


Link to post
Share on other sites

8 часов назад, Ivan_83 сказал:

А где тесты htcp и cubic?

Держите. bbr тестировал в начале и в конце, чтоб подтвердить что сетевые условия не изменились.

# sysctl net.ipv4.tcp_congestion_control=bbr
net.ipv4.tcp_congestion_control = bbr

# iperf3 -c XXXX
Connecting to host h, port 5201
[  4] local 2001:41d0:1:8055::1 port 35044 connected to XXXX port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  16.4 MBytes   137 Mbits/sec    0   1.69 MBytes       
[  4]   1.00-2.00   sec  11.2 MBytes  94.4 Mbits/sec    0   1.69 MBytes       
[  4]   2.00-3.00   sec  10.0 MBytes  83.9 Mbits/sec   48   1.68 MBytes       
[  4]   3.00-4.00   sec  11.2 MBytes  94.4 Mbits/sec    0   1.69 MBytes       
[  4]   4.00-5.00   sec  10.0 MBytes  83.9 Mbits/sec   47    882 KBytes       
[  4]   5.00-6.00   sec  12.5 MBytes   105 Mbits/sec    0   1.68 MBytes       
[  4]   6.00-7.00   sec  11.2 MBytes  94.4 Mbits/sec    0   1.69 MBytes       
[  4]   7.00-8.00   sec  10.0 MBytes  83.9 Mbits/sec   48   1.69 MBytes       
[  4]   8.00-9.00   sec  11.2 MBytes  94.4 Mbits/sec    0   1.69 MBytes       
[  4]   9.00-10.00  sec  11.2 MBytes  94.4 Mbits/sec   48   5.55 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec   115 MBytes  96.6 Mbits/sec  191             sender
[  4]   0.00-10.00  sec   105 MBytes  87.9 Mbits/sec                  receiver

iperf Done.

# sysctl net.ipv4.tcp_congestion_control=htcp
net.ipv4.tcp_congestion_control = htcp

# iperf3 -c XXXX
Connecting to host h, port 5201
[  4] local 2001:41d0:1:8055::1 port 35050 connected to XXXX port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  13.2 MBytes   111 Mbits/sec    0   1.83 MBytes       
[  4]   1.00-2.00   sec  11.2 MBytes  94.4 Mbits/sec    0   1.90 MBytes       
[  4]   2.00-3.00   sec  11.2 MBytes  94.4 Mbits/sec   48    990 KBytes       
[  4]   3.00-4.00   sec  10.0 MBytes  83.9 Mbits/sec   48    567 KBytes       
[  4]   4.00-5.00   sec  7.50 MBytes  62.9 Mbits/sec    0    513 KBytes       
[  4]   5.00-6.00   sec  7.50 MBytes  62.9 Mbits/sec    0    575 KBytes       
[  4]   6.00-7.00   sec  8.75 MBytes  73.4 Mbits/sec    0    768 KBytes       
[  4]   7.00-8.00   sec  11.2 MBytes  94.4 Mbits/sec    0    881 KBytes       
[  4]   8.00-9.00   sec  10.0 MBytes  83.9 Mbits/sec   48    742 KBytes       
[  4]   9.00-10.00  sec  11.2 MBytes  94.4 Mbits/sec    0    747 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec   102 MBytes  85.5 Mbits/sec  144             sender
[  4]   0.00-10.00  sec  94.1 MBytes  78.9 Mbits/sec                  receiver

iperf Done.

# iperf3 -c XXXX
Connecting to host h, port 5201
[  4] local 2001:41d0:1:8055::1 port 35056 connected to XXXX port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  13.2 MBytes   111 Mbits/sec    0   1.82 MBytes       
[  4]   1.00-2.00   sec  11.2 MBytes  94.4 Mbits/sec    0   1.90 MBytes       
[  4]   2.00-3.00   sec  11.2 MBytes  94.4 Mbits/sec   48    990 KBytes       
[  4]   3.00-4.00   sec  11.2 MBytes  94.4 Mbits/sec    0    990 KBytes       
[  4]   4.00-5.00   sec  7.50 MBytes  62.9 Mbits/sec   48    509 KBytes       
[  4]   5.00-6.00   sec  7.50 MBytes  62.9 Mbits/sec    0    553 KBytes       
[  4]   6.00-7.00   sec  7.50 MBytes  62.9 Mbits/sec    0    721 KBytes       
[  4]   7.00-8.00   sec  11.2 MBytes  94.4 Mbits/sec    0    872 KBytes       
[  4]   8.00-9.00   sec  11.2 MBytes  94.4 Mbits/sec    0    919 KBytes       
[  4]   9.00-10.00  sec  10.0 MBytes  83.9 Mbits/sec   48    739 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec   102 MBytes  85.5 Mbits/sec  144             sender
[  4]   0.00-10.00  sec  94.2 MBytes  79.0 Mbits/sec                  receiver

iperf Done.

# sysctl net.ipv4.tcp_congestion_control=cubic
net.ipv4.tcp_congestion_control = cubic

# iperf3 -c XXXX
Connecting to host h, port 5201
[  4] local 2001:41d0:1:8055::1 port 35060 connected to XXXX port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  2.94 MBytes  24.7 Mbits/sec    0    268 KBytes       
[  4]   1.00-2.00   sec  6.09 MBytes  51.1 Mbits/sec    0    527 KBytes       
[  4]   2.00-3.00   sec  11.0 MBytes  92.3 Mbits/sec    0    896 KBytes       
[  4]   3.00-4.00   sec  11.2 MBytes  94.4 Mbits/sec    0    900 KBytes       
[  4]   4.00-5.00   sec  10.0 MBytes  83.9 Mbits/sec   48    685 KBytes       
[  4]   5.00-6.00   sec  10.0 MBytes  83.9 Mbits/sec    0    768 KBytes       
[  4]   6.00-7.00   sec  11.2 MBytes  94.4 Mbits/sec    0    828 KBytes       
[  4]   7.00-8.00   sec  10.0 MBytes  83.9 Mbits/sec    0    871 KBytes       
[  4]   8.00-9.00   sec  11.2 MBytes  94.4 Mbits/sec   48    637 KBytes       
[  4]   9.00-10.00  sec  8.75 MBytes  73.4 Mbits/sec    0    688 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  92.5 MBytes  77.6 Mbits/sec   96             sender
[  4]   0.00-10.00  sec  89.0 MBytes  74.6 Mbits/sec                  receiver

iperf Done.

# iperf3 -c XXXX
Connecting to host h, port 5201
[  4] local 2001:41d0:1:8055::1 port 35064 connected to XXXX port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  2.94 MBytes  24.7 Mbits/sec    0    268 KBytes       
[  4]   1.00-2.00   sec  6.09 MBytes  51.1 Mbits/sec    0    526 KBytes       
[  4]   2.00-3.00   sec  11.0 MBytes  92.3 Mbits/sec    0    865 KBytes       
[  4]   3.00-4.00   sec  11.2 MBytes  94.4 Mbits/sec    0    906 KBytes       
[  4]   4.00-5.00   sec  10.0 MBytes  83.9 Mbits/sec   48    707 KBytes       
[  4]   5.00-6.00   sec  10.0 MBytes  83.9 Mbits/sec    0    786 KBytes       
[  4]   6.00-7.00   sec  11.2 MBytes  94.4 Mbits/sec    0    843 KBytes       
[  4]   7.00-8.00   sec  11.2 MBytes  94.4 Mbits/sec    0    883 KBytes       
[  4]   8.00-9.00   sec  8.75 MBytes  73.4 Mbits/sec   48    661 KBytes       
[  4]   9.00-10.00  sec  10.0 MBytes  83.9 Mbits/sec    0    704 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  92.5 MBytes  77.6 Mbits/sec   96             sender
[  4]   0.00-10.00  sec  88.4 MBytes  74.2 Mbits/sec                  receiver

iperf Done.

# sysctl net.ipv4.tcp_congestion_control=bbr
net.ipv4.tcp_congestion_control = bbr

# iperf3 -c XXXX
Connecting to host h, port 5201
[  4] local 2001:41d0:1:8055::1 port 35074 connected to XXXX port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  16.4 MBytes   137 Mbits/sec    0   1.61 MBytes       
[  4]   1.00-2.00   sec  11.2 MBytes  94.4 Mbits/sec   47    843 KBytes       
[  4]   2.00-3.00   sec  11.2 MBytes  94.4 Mbits/sec    0   1.61 MBytes       
[  4]   3.00-4.00   sec  10.0 MBytes  83.9 Mbits/sec   48    845 KBytes       
[  4]   4.00-5.00   sec  11.2 MBytes  94.4 Mbits/sec    0   1.61 MBytes       
[  4]   5.00-6.00   sec  11.2 MBytes  94.4 Mbits/sec    0   1.62 MBytes       
[  4]   6.00-7.00   sec  11.2 MBytes  94.4 Mbits/sec   48   1.61 MBytes       
[  4]   7.00-8.00   sec  11.2 MBytes  94.4 Mbits/sec    0   1.62 MBytes       
[  4]   8.00-9.00   sec  10.0 MBytes  83.9 Mbits/sec   48   1.62 MBytes       
[  4]   9.00-10.00  sec  11.2 MBytes  94.4 Mbits/sec    0   5.55 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec   115 MBytes  96.6 Mbits/sec  191             sender
[  4]   0.00-10.00  sec   105 MBytes  88.1 Mbits/sec                  receiver

iperf Done.

Они в целом не так и плохи. У htcp имеется сваливание куда-то к 62 мегабитам, у cubic основной недостаток - медленный старт, ну и тоже некоторые падения в процессе.

 

Вот ещё нашёл мои старые заметки по тестам в другом ДЦ пару лет назад (bbr тогда тоже ещё не было), с гораздо более загруженным аплоадом.

Наблюдаемая скорость при аплоаде большого файла, в мегабайтах в секунду:

/lib/modules/3.14.17-rm1+/kernel/net/ipv4/tcp_bic.ko		-- 6..5..4
/lib/modules/3.14.17-rm1+/kernel/net/ipv4/tcp_highspeed.ko	-- 2
/lib/modules/3.14.17-rm1+/kernel/net/ipv4/tcp_htcp.ko		-- 1.5...3...2
/lib/modules/3.14.17-rm1+/kernel/net/ipv4/tcp_hybla.ko		-- 3...2...1
/lib/modules/3.14.17-rm1+/kernel/net/ipv4/tcp_illinois.ko	-- 6..7..10
/lib/modules/3.14.17-rm1+/kernel/net/ipv4/tcp_lp.ko		-- 2..1
/lib/modules/3.14.17-rm1+/kernel/net/ipv4/tcp_scalable.ko	-- 5..4..3
/lib/modules/3.14.17-rm1+/kernel/net/ipv4/tcp_vegas.ko		-- 2.5
/lib/modules/3.14.17-rm1+/kernel/net/ipv4/tcp_veno.ko		-- 2.5
/lib/modules/3.14.17-rm1+/kernel/net/ipv4/tcp_westwood.ko	-- <1mb
/lib/modules/3.14.17-rm1+/kernel/net/ipv4/tcp_yeah.ko		-- 2..5..6

 

Edited by rm_

Share this post


Link to post
Share on other sites

Кубик отстой, хз как его в дефолты протащили.

У htcp есть две крутилки, которые вроде его разгоняют.

вествуд для диверсий и врагов, у меня он тоже хромал на все конечности :)

 

По твоим же тестам htcp порвал илиноиса.

А hybla порвала бы всех при RTT >70 и потерях, а так да, у неё медленный старт.

Может соберусь силами, соберу обратно стенд и проверю как будет bbr в моих херовых условиях против хублы.

Share this post


Link to post
Share on other sites

3 минуты назад, Ivan_83 сказал:

По твоим же тестам htcp порвал илиноиса.

По нынешним получается так, но в более сложных условиях (результаты в конце) иллиноис был на голову лучше.

Да всё равно bbr лучше их всех. Жаль сейчас уже нет возможности проверить в том же окружении ещё и bbr.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.