#yggdrasil #rust #go
тут на результаты тестов fips возник вопрос - "как-же так, раст-же должен быть быстрее!" вот вам сравнение на одном и том-же физическом стенде:
Ванильный yggdrasil (go):
perf3 -i40 -t120 -c 204:84c1:1c59:e250:d04b:6175:6147:d4f8
Connecting to host 204:84c1:1c59:e250:d04b:6175:6147:d4f8, port 5201
[ 5] local 202:7d3c:5d59:1b52:48e2:5810:37bf:c310 port 49482 connected to 204:84c1:1c59:e250:d04b:6175:6147:d4f8 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-40.01 sec 4.68 GBytes 1.01 Gbits/sec 4747 192 KBytes
[ 5] 40.01-80.00 sec 4.71 GBytes 1.01 Gbits/sec 4682 192 KBytes
[ 5] 80.00-120.00 sec 4.71 GBytes 1.01 Gbits/sec 4701 128 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-120.00 sec 14.1 GBytes 1.01 Gbits/sec 14130 sender
[ 5] 0.00-120.01 sec 14.1 GBytes 1.01 Gbits/sec receiver
iperf Done.
yggdrasil-ng (rust):
iperf3 -i40 -t120 -c 204:a8fa:cb09:778f:882d:679a:50b1:7650
Connecting to host 204:a8fa:cb09:778f:882d:679a:50b1:7650, port 5201
[ 5] local 202:fa1d:2f1c:e479:a6a4:dd97:38ca:9875 port 60596 connected to 204:a8fa:cb09:778f:882d:679a:50b1:7650 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-40.04 sec 3.83 GBytes 822 Mbits/sec 1367 511 KBytes
[ 5] 40.04-80.04 sec 3.84 GBytes 826 Mbits/sec 1293 448 KBytes
[ 5] 80.04-120.04 sec 3.73 GBytes 802 Mbits/sec 1374 384 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-120.04 sec 11.4 GBytes 817 Mbits/sec 4034 sender
[ 5] 0.00-120.04 sec 11.4 GBytes 816 Mbits/sec receiver
iperf Done.
Тест на "голом железе":
iperf3 -i40 -t120 -c fe80::be24:11ff:fe52:a148%ens19
Connecting to host fe80::be24:11ff:fe52:a148%ens19, port 5201
[ 5] local fe80::be24:11ff:fefc:1cd7 port 54668 connected to fe80::be24:11ff:fe52:a148 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-40.04 sec 19.6 GBytes 4.21 Gbits/sec 10031 789 KBytes
[ 5] 40.04-80.04 sec 22.4 GBytes 4.81 Gbits/sec 7561 810 KBytes
[ 5] 80.04-120.04 sec 18.4 GBytes 3.95 Gbits/sec 9643 47.1 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-120.04 sec 60.4 GBytes 4.32 Gbits/sec 27235 sender
[ 5] 0.00-120.04 sec 60.4 GBytes 4.32 Gbits/sec receiver
iperf Done.
Во всех случаях yggdrasil-ы запускались в режиме autoconf. Собирались последние доступные на гитхабе версии последними версиями компиляторов.
Повторюсь, у гошечки - очень хороший компилятор, очень вылизанные библиотеки и сам ванильный yggdrasil - очень хорошо оптимизирован. Я не думаю, что @Revertron не в состоянии дотянуть свою версию по скорости до ванильного yggdrasil (другой вопрос - готов-ли он настолько упороться в эту проблему). Но расчитывать на то, что если rust использовать "не думая", можно получить какие-то особые приемущества в скорости - однозначно нет.
тут на результаты тестов fips возник вопрос - "как-же так, раст-же должен быть быстрее!" вот вам сравнение на одном и том-же физическом стенде:
Ванильный yggdrasil (go):
perf3 -i40 -t120 -c 204:84c1:1c59:e250:d04b:6175:6147:d4f8
Connecting to host 204:84c1:1c59:e250:d04b:6175:6147:d4f8, port 5201
[ 5] local 202:7d3c:5d59:1b52:48e2:5810:37bf:c310 port 49482 connected to 204:84c1:1c59:e250:d04b:6175:6147:d4f8 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-40.01 sec 4.68 GBytes 1.01 Gbits/sec 4747 192 KBytes
[ 5] 40.01-80.00 sec 4.71 GBytes 1.01 Gbits/sec 4682 192 KBytes
[ 5] 80.00-120.00 sec 4.71 GBytes 1.01 Gbits/sec 4701 128 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-120.00 sec 14.1 GBytes 1.01 Gbits/sec 14130 sender
[ 5] 0.00-120.01 sec 14.1 GBytes 1.01 Gbits/sec receiver
iperf Done.
yggdrasil-ng (rust):
iperf3 -i40 -t120 -c 204:a8fa:cb09:778f:882d:679a:50b1:7650
Connecting to host 204:a8fa:cb09:778f:882d:679a:50b1:7650, port 5201
[ 5] local 202:fa1d:2f1c:e479:a6a4:dd97:38ca:9875 port 60596 connected to 204:a8fa:cb09:778f:882d:679a:50b1:7650 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-40.04 sec 3.83 GBytes 822 Mbits/sec 1367 511 KBytes
[ 5] 40.04-80.04 sec 3.84 GBytes 826 Mbits/sec 1293 448 KBytes
[ 5] 80.04-120.04 sec 3.73 GBytes 802 Mbits/sec 1374 384 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-120.04 sec 11.4 GBytes 817 Mbits/sec 4034 sender
[ 5] 0.00-120.04 sec 11.4 GBytes 816 Mbits/sec receiver
iperf Done.
Тест на "голом железе":
iperf3 -i40 -t120 -c fe80::be24:11ff:fe52:a148%ens19
Connecting to host fe80::be24:11ff:fe52:a148%ens19, port 5201
[ 5] local fe80::be24:11ff:fefc:1cd7 port 54668 connected to fe80::be24:11ff:fe52:a148 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-40.04 sec 19.6 GBytes 4.21 Gbits/sec 10031 789 KBytes
[ 5] 40.04-80.04 sec 22.4 GBytes 4.81 Gbits/sec 7561 810 KBytes
[ 5] 80.04-120.04 sec 18.4 GBytes 3.95 Gbits/sec 9643 47.1 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-120.04 sec 60.4 GBytes 4.32 Gbits/sec 27235 sender
[ 5] 0.00-120.04 sec 60.4 GBytes 4.32 Gbits/sec receiver
iperf Done.
Во всех случаях yggdrasil-ы запускались в режиме autoconf. Собирались последние доступные на гитхабе версии последними версиями компиляторов.
Повторюсь, у гошечки - очень хороший компилятор, очень вылизанные библиотеки и сам ванильный yggdrasil - очень хорошо оптимизирован. Я не думаю, что @Revertron не в состоянии дотянуть свою версию по скорости до ванильного yggdrasil (другой вопрос - готов-ли он настолько упороться в эту проблему). Но расчитывать на то, что если rust использовать "не думая", можно получить какие-то особые приемущества в скорости - однозначно нет.