Как выбрать и настроить 10Гбит сетевые карты под высокую нагрузку?
Столкнулся с проблемой нехватки ресурсов CPU для обработки прерываний сетевых карт. Тип нагрузки - линейное чтение больших объемов данных с SSD-массивов, фактически передача файлов по сети. Дисковая система, шины далеки от перегрузки, но даже весьма современные процессоры E5-2690v3 уже при 40Гбит нагрузки загружены в ноль IRQ от сетевых карт (Intel X520). Что сделано - оптимизация числа очередей, ручное их распределение с учетом NUMA, тюнинг всевозможных задержек и оффлоадов в меру их понимания, отключен Flow control. Пробовал карты X710 - там еще больше настроек, но лучшего результата добиться все равно не удалось. Подскажите, есть ли на рынке более мощные карты (читал что интерсны в этом плане SolarFlare )? Какие параметры еще стоит покрутить для оптимизации производительности в условиях подобной нагрузки?
Дисковая система, шины далеки от перегрузки, но даже весьма современные процессоры E5-2690v3 уже при 40Гбит нагрузки загружены в ноль IRQ от сетевых карт (Intel X520)
Я правильно понимаю что речь идёт о бондинге 4 портов 10г в 40г?
не лучше тогда поставить 40гбит карту и коммутатор с 40г портами?
Wexter, верно, это бондинг. В принципе можем применить коммутатор с 40Гбит портами. Хотя аплинк к нему будет приходить одинаково транками 10Гбит (оборудование ЦОД пока только на 10Гбит линках), но это уже проблемы коммутатора. Вопрос, что принципиально изменится в случае с 40Гбит сетевой? При том же количестве запросов она позволит снизить нагрузку процессора прерываниями?
Iaroslav_Olegovich, я бы посмотрел сначала какой чипсет у текущих сетевых карт - насколько он старый, и тогда уже думать стоит ли брать другие сетевые карты.
Владимир, сейчас установлены X520-DA2 (82599 чипсет) и есть один сервер c X710-DA4 (если я верно понимаю, чипсет XL710) - более новые карты не дают никакого ощутимого снижения нагрузки.
у нас более новые карты разгружали softirq гдето на 10% на хостах которые експортили блочные устройства по iscsi + возможно банальный вопрос - jumbo frame включен ?
Владимир, я практически уверен что нет, так как дальше коммутаторов ЦОД наш контроль ограничен. Но при включении на графиках сервера изменения были, однако они скорее в пределах погрешности.
Ещё подумал, как вариант - quad cpu решения, на E7-8800 можно собрать гораздо более мощную систему за смешные деньги по сравнению со Scalable Xeon. Вопрос с сетевыми все равно остается открыт.
Можно уточнить схему включения? аплинк цода дальше свитч а дальше ваша нода с диковым массивом? она одна? откуда прилетает столько трафика? горизонтально или вертикально? т.е., трафик прилетает извне? или передача данных происходит внутри цода между вашими нодами?
Да, все верно, нода одна, особенность в том, чтобы не делить массив дисков на разные ноды, иначе неудобно балансировать и управлять. Трафик в основном исходящий, десятки тысяч коннектов - стриминг видео (обслуживание локальных youtube).
Денис Сечин, conntrack отключен. Пробовали разное количество очередей карты - и по количетсву физических ядер и по количеству виртуальных, но лучше всего если одна карта укладывается в пределах одной NUMA-node одного физического процессора. Все ядра загружены, нагрузка равномерная. Процессоров установлено 2, топовых для платформы.
Iaroslav_Olegovich, а не задумывались над горизонтальним масштабированием? Да, придется заморочиться с балансировкой но в итоге по моему мнению это очень гибко и более масштабируемо простите за тавтологию
Денис Сечин, там где это было допустимо и оправдано - так и сделали. Вопрос именно в возможности снижения нагрузки от сетевой карты и если это невозможно с помощью более новых адаптеров - банального увеличения мощности CPU.