Вопрос или проблема
Я запускаю окружение OpenStack на серверах Dell R630. Вот соответствующие детали:
Вычислительные узлы: Ubuntu 22.04 с 256 ГБ ОЗУ, процессоры Intel Xeon E5-2680
Сетевая карта: Адаптер Intel Corporation Ethernet 10G 2P X520 (двухпортовые сетевые карты)
Объединение: Объединенные сетевые карты (режим: 802.3ad) для агрегирования общей пропускной способности 20 Гбит/с на сервер
MTU: Установлен на 4096 на сетевых картах, коммутаторах и типах экземпляров
Проблема:
Несмотря на вышеуказанную настройку, я сталкиваюсь с серьезными сетевыми узкими местами. Сетевой трафик между всеми экземплярами на вычислительном узле не превышает 1,5 Гбит/с без значительных потерь пакетов. После этого момента экземпляры переживают сильные потери пакетов, хотя использование ЦП и памяти на вычислительных узлах составляет менее 20%, даже несмотря на то, что у меня около 40 экземпляров на каждом вычислительном узле.
Что я пробовал:
Настройка объединения: Сетевые карты объединены в режиме 802.3ad, подтверждено работоспособность с коммутаторами.
Конфигурация MTU: MTU установлен на 4096 на всех соответствующих точках (сетевые карты, коммутатор и экземпляры).
Мониторинг: Сетевая проблема возникает даже при низком использовании ЦП и памяти (менее 20%).
Вопросы:
Что может ограничивать мою сетевую пропускную способность до всего лишь 1,5 Гбит/с?
Существуют ли специфические настройки или конфигурации (сетевые карты, объединение, OpenStack, ядро Linux и т. д.), которые мне нужно оптимизировать, чтобы достичь большей пропускной способности без потерь пакетов?
Может ли это быть проблемой, связанной с аппаратным обеспечением сетевой карты или конфигурацией объединения, или я что-то упускаю в терминах сетевой оптимизации?
Я также отключил функции Offloading, такие как TCP-сегментация (TSO), общая сегментация (GSO) или разгрузка больших полученных пакетов (LRO)
Ответ или решение
Проблема с узким местом в сети в вашей среде OpenStack на серверах Dell R630 с использованием сетевых карт Intel X520 может быть вызвана целым рядом факторов. Давайте разберем возможные причины и предложим решения.
Возможные причины узкого места в сети
-
Конфигурация объединения NIC (802.3ad): Хотя вы правильно настроили объединение NIC в режиме 802.3ad (LACP), стоит убедиться, что коммутатор корректно поддерживает данный режим и правильно настроен для агрегации трафика. Убедитесь, что все порты, используемые для объединения, действительно работают в режиме LACP и поддерживают необходимые свойства.
-
Настройки MTU: Вы указали, что MTU установлено на 4096. Это значение должно быть одинаковым на всех узлах сети (NIC, коммутатор и виртуальные машины). Убедитесь, что все участники сети согласованы по этому значению, чтобы избежать проблем с фрагментацией пакетов.
-
Настройки OpenStack и KVM: Если ваши виртуальные машины используют стандартный сетевой драйвер (virtio), возможно, имеет смысл оценивать использование других драйверов (например,
vfio
, если поддерживается), которые могут предложить лучшее производительность. Также необходимо проверить виртуальные сети (Neutron) на предмет настройки QoS или ограничений, которые могут влиять на производительность. -
Параметры ядра Linux: Оптимизация параметров ядра может значительно улучшить производительность сети. Рассмотрите следующие параметры:
- Увеличьте значение
net.core.rmem_max
иnet.core.wmem_max
для увеличения размера буферов. - Настройте
net.ipv4.tcp_rmem
иnet.ipv4.tcp_wmem
для увеличения размеров окон. - Проверьте
net.ipv4.tcp_mtu_probing
, чтобы избежать проблем с MTU.
- Увеличьте значение
-
Оптимизация обработки пакетов: Отключение функций Offloading (как TSO, GSO, LRO) может иногда приводить к снижению производительности. Попробуйте вернуть некоторые из этих опций для проверки:
ethtool -K <interface> tso on ethtool -K <interface> gso on ethtool -K <interface> lro on
Рекомендации по улучшению производительности
-
Мониторинг и анализ трафика: Используйте инструменты мониторинга сети (например,
iftop
,nload
,iptraf
), чтобы оценить, какие именно потоки трафика могут вызывать узкие места и узнайте, как именно используется полоса пропускания. -
Проверка и обновление прошивки: Убедитесь, что у вас установлены последние версии прошивки для сетевых карт Intel X520. Новые версии прошивки могут содержать исправления и оптимизации, которые могут улучшить производительность.
-
Тестирование загруженности сети: Используйте инструменты для тестирования сети, такие как
iperf
, чтобы провести нагрузочные тесты и независящие от сервисов, работающих в виртуальных машинах. Это поможет изолировать проблемы с производительностью. -
Разделение нагрузки: Если возможно, рассмотрите возможность снижения количества виртуальных машин на каждом узле или добавления дополнительных узлов для балансировки нагрузки.
Заключение
Ваши текущие настройки выглядят достаточно хорошо для достижения 20 Гбит/с на сервер, однако существующие проблемы с пропускной способностью могут быть связаны с комбинацией настроек сетевой конфигурации, параметров ядра и работы виртуальных машин. Следуя приведенным рекомендациям, вы сможете значительно улучшить сетевую производительность в вашей среде OpenStack.