
Недавно я заинтересовался темой настройки домашнего hadoop/hdfs/spark кластера, т.к. от апгрейдов осталось какое-то железо, а данные даже дома хочется обрабатывать в парадигме, которая масштабируется.
Вычислительно сложные задачи не всегда упираются даже в 1GbE соединение, но накладные расходы оно всё же вносит. Например, подсчёт слов в английской википедии с локальными данными выполняется за 10 минут, а с данными на соседней ноде — за 13 минут. Для их минимизации решил проапгрейдить сеть.
Доступные 10GbE сетевые адаптеры можно было найти уже давно, но неожиданным для меня оказалось, что 40GbE не дороже. На Авито и eBay Mellanox Connectx-3 mcx354а можно купить за $50.
Из приятного, в ubuntu 18.04 с ядром 5.3 сетевой интерфейс был доступен сразу после загрузки, без какой-либо дополнительной настройки.
Настройки потребовал только mtu. Его увеличение положительно сказывается на скорости.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
$ iperf -c 192.168.3.1 ------------------------------------------------------------ Client connecting to 192.168.3.1, TCP port 5001 TCP window size: 85.0 KByte (default) ------------------------------------------------------------ [ 3] local 192.168.3.2 port 42464 connected with 192.168.3.1 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 35.9 GBytes 30.8 Gbits/sec $ sudo ifconfig enp1s0d1 192.168.3.2 mtu 8000 up $ iperf -c 192.168.3.1 ------------------------------------------------------------ Client connecting to 192.168.3.1, TCP port 5001 TCP window size: 325 KByte (default) ------------------------------------------------------------ [ 3] local 192.168.3.2 port 44338 connected with 192.168.3.1 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 38.9 GBytes 33.5 Gbits/sec |
А с настройкой mtu при загрузке возникли сложности, которые уже зарепорчены в https://bugs.launchpad.net/netplan/+bug/1724895
После применения рецепта из тикета, конфиг стал такой:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
$ cat /etc/netplan/01-netcfg.yaml network: version: 2 renderer: networkd ethernets: enp1s0: dhcp4: no addresses: [192.168.2.2/24] mtu: 8000 match: macaddress: 00:10:e0:4a:18:31 enp1s0d1: dhcp4: no addresses: [192.168.3.2/24] mtu: 8000 match: macaddress: 00:10:e0:4a:18:32 |
И можно не переживать о деградации производительности после перезагрузки.