Я думал все будет проще, поэтому не писал характеристики оборудования.
Собственно с них и начнем:
1. Сервер Huawei Fusion Server 2488H V5, Ram 2 Tb, 4xCPU Xeon Gold 6244.
1.1 Local RAID controller
Avago MegaRAID 9440-8i1.2 Fiber Chanell Controller
LPe32002 FC Host Bus Adapter (LPe32002-M2)2. Huawei Dorado 3000 V6.
2.1 Специализированное ПО
Huawei UltraPathНа текущий момент меня интересуют оба контроллера.
1.1 работает на одинаковой скорости с виндой, хотя определился как "25:00.0 RAID bus controller [0104]: Broadcom / LSI MegaRAID Tri-Mode SAS3408 [1000:0017] (rev 01)"
1.2 работает в 20 раз (!!!) медленне чем в винде, определился как "63:00.0 Fibre Channel [0c04]: Emulex Corporation LPe35000/LPe36000 Series 32Gb/64Gb Fibre Channel Adapter [10df:f400]". В реалиях стоит LPe32002-M2, 2 порта по 32 Gb, бывший Emulex.
2.1 это аналог MultiIO, но со своими фишками. Если получится прикрутить - будет совсем здорово, но на текущий момент не обязательно.
Основная проблема это 1.2.
Думал что обойдусь малой кровью... :)
И сразу обратите внимание на статистику в /proc/interrupts на предмет того, сколько очередей у контроллера, и разбежались ли они по разным ядрам. Может быть (если очередей много, а повисли они на одно ядро) Вам нужно установить и запустить irqbalance, а, может быть, даже ещё и настроить его руками, если автоматом выйдет не очень.
Насколько я смог интерпретировать - то все расползается по всем 64-м виртуальным ядрам, более-менее равномерно.
Прогнал тест производительности и смотрел на загрузку в htop - 100% загрузка одного ядра не встречается. В среднем 5-10% на 8-10 ядрах.
P.S. Исходники на LPe нашел, но за 20 лет забыл формат make-файла. Надо изучать, не собирается. Хотя может и каких-то библиотек не хватает... Ламер я в линуксе...
Да и программирование подзабыл...