Mellanox ConnectX-3 очень высокая загрузка ЦП.

Вопрос или проблема

Я купил MCX311A-XCAT CX311A ConnectX-3 для своего серверa разработки с намерением купить еще один, если этот будет работать для моего ПК. В настоящее время мой сервер хранения и мой ПК имеют 2,5Gbe. Они все подключены к Davuaz Da-K6402W. Сервер разработки – Xeon E-2136 с частотой до 4,5GHz. Серверы хранения и разработки используют Rocky Linux 9 (основанный на RHEL) – ядро 5.14.0. 10G NIC работает, но загрузка ЦП составляет около 70% (это 70% на одном ядре) при подключении iperf3 к серверу хранения со скоростью около 2,30 Gbits/сек. Сервер хранения, с другой стороны, – Xeon E3-1285L – намного старше, и iperf3 использует там 5-10% ЦП. Когда происходит копирование с машины с 1G NIC, используется 30% ЦП.

Это также увеличивает потребление электроэнергии. Я измерил мощность своего сервера хранения с этим NIC. Оно варьируется от 66W до 105W (+40W) из-за загрузки ЦП просто при передаче данных на 2,5Gbit/s. Ограничение ЦП до 1GHz снизило потребление до 70W (всего на 4 ватта больше, чем в режиме ожидания).

Мощность ЦП: 38-40W для Xeon E-2136 с 10G NIC, который находится в режиме ожидания на 1W. Мощность ЦП: 19W для E3-1285L с 2,5G NIC, который находится в режиме ожидания на 10W.

Только что выяснил, что передача на 2,5G/s поддерживает загрузку ЦП на 5%, при получении – 68% (все другие тесты двунаправленные).

Почему 10G NIC требует так много ЦП даже на низких скоростях? Какие рекомендации для более дешевых вариантов 10G SPF+ NIC для домашней лаборатории?

Примечание: сетевое устройство находится в мосту – br0. Однако я тестировал без моста – без изменений.

Ответ или решение

Высокая загрузка ЦП при использовании Mellanox ConnectX-3: анализ и рекомендации

Контекст проблемы

Вы приобрели сетевую карту Mellanox ConnectX-3 (MCX311A-XCAT) для вашего серверного окружения, которое включает в себя сервер разработки на базе Xeon E-2136 с поддержкой 10GbE и несколько других устройств с 2.5GbE. При тестировании с использованием утилиты iperf3 вы заметили, что при скорости передачи около 2.3 Gbit/s загрузка одного ядра ЦП достигает 70%, в то время как на более старом сервере с E3-1285L данное значение составляет всего 5-10%.

Анализ причин высокой загрузки ЦП

Высокая загрузка ЦП при использовании Mellanox ConnectX-3 может быть вызвана несколькими факторами:

  1. Обработка прерываний: В сетевых интерфейсах, особенно при работе на высоких скоростях, значительная часть нагрузки может приходиться на обработку прерываний. Если система не оптимизирована для работы с высокой частотой прерываний, это может привести к увеличению загрузки ЦП.

  2. Качество драйверов: Драйверы для сетевой карты ConnectX-3 могут вызывать неэффективности. Плохо оптимизированные драйверы могут увеличивать использование ресурсов системы.

  3. Настройки сети: По умолчанию могут быть выбраны неэффективные параметры для работы с высокоскоростными сетевыми интерфейсами. Это может включать в себя настройки на уровне ядра, такие как стратегия прерываний, параметры буферов и другие.

  4. Сетевой стек: Загруженность программного обеспечения сетевого стека также может влияять на производительность. Например, TCP/IP стек может быть настроен на работу с сетевыми картами более низкой скорости, что также приведет к ухудшению производительности.

Рекомендуемые действия

Для уменьшения загрузки ЦП при использовании вашего 10G NIC, рекомендуем выполнить следующие шаги:

  1. Оптимизация конфигурации прерываний:

    • Убедитесь, что данная сетевая карта использует механизм RSS (Receive Side Scaling), который распределяет нагрузку по нескольким ядрам.
    • Настройте прерывания по ядрам, чтобы минимизировать перегрузку.
  2. Обновление драйверов:

    • Проверьте, доступны ли более новые версии драйверов для вашей сетевой карты и операционной системы. Иногда обновления содержат полезные исправления, которые могут снизить нагрузку на ЦП.
  3. Настройка параметров сети:

    • Попробуйте увеличить размер MTU (Maximum Transmission Unit) для уменьшения нагрузки на ЦП при работе с большими объемами данных.
    • Проверьте и, если необходимо, настройте параметры TCP offloading, такие как TSO (TCP Segmentation Offload) и LRO (Large Receive Offload).
  4. Использование альтернативных решений:

    • Рассмотрите возможность использования других моделей 10G NIC, которые более оптимизированы для работы в средах с низким уровнем нагрузки на ЦП. Например, сетевые карты на базе Broadcom или Intel могут демонстрировать лучшую производительность.
  5. Мониторинг производительности:

    • Используйте инструменты мониторинга (такие как top, htop, nload, iftop и другие) для анализа загрузки системы и сетевых показателей в реальном времени, что может помочь в выявлении узких мест.

Заключение

Высокая загрузка ЦП при использовании Mellanox ConnectX-3 на вашем сервере является сложной проблемой, уходящей корнями в различные аспекты сетевой архитектуры и программного обеспечения. Проведение вышеуказанных оптимизаций может значительно улучшить производительность системы и снизить затраты на электроэнергию. Если проблема останется нерешённой, возможно, стоит рассмотреть альтернативные сетевые решения для вашей домашней лаборатории.

Оцените материал
Добавить комментарий

Капча загружается...