Архив категории: hardware

hardware Без рубрики

Домашняя 40GbE сеть

Недавно я заинтересовался темой настройки домашнего hadoop/hdfs/spark кластера, т.к. от апгрейдов осталось какое-то железо, а данные даже дома хочется обрабатывать в парадигме, которая масштабируется.

Вычислительно сложные задачи не всегда упираются даже в 1GbE соединение, но накладные расходы оно всё же вносит. Например, подсчёт слов в английской википедии с локальными данными выполняется за 10 минут, а с данными на соседней ноде — за 13 минут. Для их минимизации решил проапгрейдить сеть.

Доступные 10GbE сетевые адаптеры можно было найти уже давно, но неожиданным для меня оказалось, что 40GbE не дороже. На Авито и eBay Mellanox Connectx-3 mcx354а можно купить за $50.

Из приятного, в ubuntu 18.04 с ядром 5.3 сетевой интерфейс был доступен сразу после загрузки, без какой-либо дополнительной настройки.
Настройки потребовал только mtu. Его увеличение положительно сказывается на скорости.

А с настройкой mtu при загрузке возникли сложности, которые уже зарепорчены в https://bugs.launchpad.net/netplan/+bug/1724895
После применения рецепта из тикета, конфиг стал такой:

И можно не переживать о деградации производительности после перезагрузки.

CPU hardware performance

Тесты производительности нескольких отдельно взятых процессоров

Собрал ядрышко линукса на 2х своих машинках(и ещё на одной товарища artamonov). Конфигурация — которая генерируется при запуске и выходе make menuconfig. Это около 2500 модулей и ещё много всего ненужного.
Читал как-то что потоков нужно больше чем ядер, т.к. что-то полезное они начинают делать не сразу. Оказывается это не особо то и нужно, и даже, скорее, вредно. Ниже есть тесты с разным количеством потоков.
Intel(R) Core(TM) i5 CPU 760:

AMD FX(tm)-8120 Eight-Core Processor:

AMD FX(tm)-8120 Eight-Core Processor:

Intel(R) Core(TM) i7 CPU 2600K:

Intel(R) Core(TM) i7 CPU 2600K:

Читать далее »

hardware linux SSD

Эксперименты с TRIM

Вступление.
Дабы не искать перемещённые блоки по всему диску запишем на бОльшую его часть что-нибудь бесполезное, но с узнаваемым паттерном.
Хотя если контроллер умеет делать перестановки:
«после trim» <- «редко записываемые данные» <- «часто записываемые данные»
или
«редко записываемые данные» <-> «часто записываемые данные»
то мы не сможем это увидеть или это будет довольно трудно.
Ладно. Будем надеяться и верить. Читать далее »