Здравствуйте.
Я мало что понимаю во FreeBSD, возможно, делаю что-то не так и надеюсь, сообщество сможет помочь советом.
Итак, есть Truenas Core 13.0-U4
CPU: Xeon E3-1275L v3
RAM: 32GB
MB: Supermicro X10SLM-F
Сетевая igb0: I210 AT
Вторая сетевая em0 I217-LM неактивна, не используется.
Запущены несколько Jail и одна виртуалка с Debian 11 внутри.
У джейлов сеть с DHCP+VNET+BPF, приаттачено к em0 через (если я правильно понял) vnet1(tap)+bridge0
У виртуалки сеть через VirtIO.
Наблюдается странный казус со скоростью виртуальной сети, сравнивая ситуации хост-jail и хост-VM
Вот результаты iperf между хостом и jail (в обе стороны скорость плюс-минус одинаковая).
Тест от хост к джейлу:
И в обратную сторону:
Т.е. скорость практически одинаковая в обоих нааправлениях.
А вот такие же тесты с VM
От хоста к VM:
И в обратном направлении:
Тест показывает, что от VM к хосту скорость сети почти в 3 раза ниже, чем от хоста к VM. И это для меня какая-то мистика.
Вторая мистика это TSO
В дефолте TSO у меня выключено для igb0.
При его ручном включении скорость до джейлов поднимаетя до 35-40ГБит\с, а до VM - до 25-30Гбит\с, однако спустя минут 10-15 FreeBSD зачем-то (почему-то) сама отключает TSO, ни слова ни говоря ни в dmesg ни в /var/log/messages
Если без моего вмешательства в ifconfig, то Truenas загружается вот с такой картиной для интерфейса igb0:
Вопроса два:
1. Почему может быть такой перекос в скоростях сети между хостом и виртуалкой.
2. Почему FreeBSD отключает TSO сама, и почему молча.
Спасибо.
Я мало что понимаю во FreeBSD, возможно, делаю что-то не так и надеюсь, сообщество сможет помочь советом.
Итак, есть Truenas Core 13.0-U4
CPU: Xeon E3-1275L v3
RAM: 32GB
MB: Supermicro X10SLM-F
Сетевая igb0: I210 AT
Вторая сетевая em0 I217-LM неактивна, не используется.
Запущены несколько Jail и одна виртуалка с Debian 11 внутри.
У джейлов сеть с DHCP+VNET+BPF, приаттачено к em0 через (если я правильно понял) vnet1(tap)+bridge0
У виртуалки сеть через VirtIO.
Наблюдается странный казус со скоростью виртуальной сети, сравнивая ситуации хост-jail и хост-VM
Вот результаты iperf между хостом и jail (в обе стороны скорость плюс-минус одинаковая).
Тест от хост к джейлу:
Code:
# iperf3 -c databases -i 1 Connecting to host databases, port 5201 [ 5] local 192.168.15.198 port 22022 connected to 192.168.15.100 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 661 MBytes 5.54 Gbits/sec 0 1.61 MBytes [ 5] 1.00-2.00 sec 637 MBytes 5.35 Gbits/sec 0 1.61 MBytes [ 5] 2.00-3.00 sec 669 MBytes 5.61 Gbits/sec 0 1.61 MBytes [ 5] 3.00-4.00 sec 658 MBytes 5.52 Gbits/sec 0 1.61 MBytes [ 5] 4.00-5.00 sec 656 MBytes 5.50 Gbits/sec 0 1.61 MBytes [ 5] 5.00-6.00 sec 651 MBytes 5.46 Gbits/sec 0 1.61 MBytes [ 5] 6.00-7.00 sec 645 MBytes 5.41 Gbits/sec 0 1.61 MBytes [ 5] 7.00-8.00 sec 643 MBytes 5.39 Gbits/sec 0 1.61 MBytes [ 5] 8.00-9.00 sec 637 MBytes 5.34 Gbits/sec 0 1.61 MBytes [ 5] 9.00-10.00 sec 641 MBytes 5.38 Gbits/sec 0 1.61 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.00 sec 6.35 GBytes 5.45 Gbits/sec 0 sender [ 5] 0.00-10.00 sec 6.35 GBytes 5.45 Gbits/sec receiver
И в обратную сторону:
Code:
# iperf3 -c databases -i 1 -R Connecting to host databases, port 5201 Reverse mode, remote host databases is sending [ 5] local 192.168.15.198 port 18494 connected to 192.168.15.100 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 646 MBytes 5.42 Gbits/sec [ 5] 1.00-2.00 sec 652 MBytes 5.47 Gbits/sec [ 5] 2.00-3.00 sec 635 MBytes 5.32 Gbits/sec [ 5] 3.00-4.00 sec 624 MBytes 5.24 Gbits/sec [ 5] 4.00-5.00 sec 611 MBytes 5.12 Gbits/sec [ 5] 5.00-6.00 sec 598 MBytes 5.02 Gbits/sec [ 5] 6.00-7.00 sec 603 MBytes 5.06 Gbits/sec [ 5] 7.00-8.00 sec 600 MBytes 5.03 Gbits/sec [ 5] 8.00-9.00 sec 588 MBytes 4.93 Gbits/sec [ 5] 9.00-10.00 sec 602 MBytes 5.05 Gbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.00 sec 6.02 GBytes 5.17 Gbits/sec 0 sender [ 5] 0.00-10.00 sec 6.01 GBytes 5.17 Gbits/sec receiver
Т.е. скорость практически одинаковая в обоих нааправлениях.
А вот такие же тесты с VM
От хоста к VM:
Code:
# iperf3 -c dockervm -i 1 Connecting to host dockervm, port 5201 [ 5] local 192.168.15.198 port 26337 connected to 192.168.15.104 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 764 MBytes 6.41 Gbits/sec 510 80.6 KBytes [ 5] 1.00-2.00 sec 785 MBytes 6.58 Gbits/sec 524 123 KBytes [ 5] 2.00-3.00 sec 762 MBytes 6.39 Gbits/sec 575 129 KBytes [ 5] 3.00-4.00 sec 770 MBytes 6.46 Gbits/sec 402 173 KBytes [ 5] 4.00-5.00 sec 784 MBytes 6.58 Gbits/sec 491 127 KBytes [ 5] 5.00-6.00 sec 743 MBytes 6.23 Gbits/sec 377 200 KBytes [ 5] 6.00-7.00 sec 765 MBytes 6.42 Gbits/sec 436 124 KBytes [ 5] 7.00-8.00 sec 810 MBytes 6.79 Gbits/sec 575 170 KBytes [ 5] 8.00-9.00 sec 812 MBytes 6.81 Gbits/sec 579 167 KBytes [ 5] 9.00-10.00 sec 750 MBytes 6.29 Gbits/sec 526 180 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.00 sec 7.56 GBytes 6.50 Gbits/sec 4995 sender [ 5] 0.00-10.04 sec 7.56 GBytes 6.47 Gbits/sec receiver
И в обратном направлении:
Code:
# iperf3 -c dockervm -i 1 -R Connecting to host dockervm, port 5201 Reverse mode, remote host dockervm is sending [ 5] local 192.168.15.198 port 47312 connected to 192.168.15.104 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 201 MBytes 1.69 Gbits/sec [ 5] 1.00-2.00 sec 203 MBytes 1.71 Gbits/sec [ 5] 2.00-3.00 sec 202 MBytes 1.69 Gbits/sec [ 5] 3.00-4.00 sec 201 MBytes 1.68 Gbits/sec [ 5] 4.00-5.00 sec 201 MBytes 1.69 Gbits/sec [ 5] 5.00-6.00 sec 202 MBytes 1.70 Gbits/sec [ 5] 6.00-7.00 sec 201 MBytes 1.69 Gbits/sec [ 5] 7.00-8.00 sec 200 MBytes 1.67 Gbits/sec [ 5] 8.00-9.00 sec 196 MBytes 1.65 Gbits/sec [ 5] 9.00-10.00 sec 197 MBytes 1.65 Gbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.04 sec 1.96 GBytes 1.68 Gbits/sec 0 sender [ 5] 0.00-10.00 sec 1.96 GBytes 1.68 Gbits/sec receiver
Тест показывает, что от VM к хосту скорость сети почти в 3 раза ниже, чем от хоста к VM. И это для меня какая-то мистика.
Вторая мистика это TSO
В дефолте TSO у меня выключено для igb0.
При его ручном включении скорость до джейлов поднимаетя до 35-40ГБит\с, а до VM - до 25-30Гбит\с, однако спустя минут 10-15 FreeBSD зачем-то (почему-то) сама отключает TSO, ни слова ни говоря ни в dmesg ни в /var/log/messages
Если без моего вмешательства в ifconfig, то Truenas загружается вот с такой картиной для интерфейса igb0:
Code:
# ifconfig igb0 igb0: flags=8963<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=8100b8<VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,VLAN_HWFILTER> ether 0c:xx:xx:xx:xx inet6 fe80::xxx:xxx:xxx:yyy%igb0 prefixlen 64 scopeid 0x2 inet6 2403:5811:xxx:xxx:xxx:yyy prefixlen 64 autoconf inet6 fd44:aaaa::xxx:xxx:xxx:yyy prefixlen 64 autoconf inet 192.168.15.198 netmask 0xffffff00 broadcast 192.168.15.255 media: Ethernet autoselect (1000baseT <full-duplex>) status: active nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
Вопроса два:
1. Почему может быть такой перекос в скоростях сети между хостом и виртуалкой.
2. Почему FreeBSD отключает TSO сама, и почему молча.
Спасибо.