2 порта 10Gbe NIC Производительность половина ожидаемого

1269
Nate

У меня проблемы с получением ожидаемой пропускной способности 10-гигабитного Intel 82599EB с двумя портами. Я перепробовал много вещей и хочу знать, могу ли я попробовать что-то, что я пропустил.

Моя аппаратная конфигурация

Два сервера с OpenSUSE и двойным портом Intel 82599EB 10GbE на каждом. Они вручную настроены на статические IP-адреса, и каждый порт на одном компьютере подключен к порту на втором.

lspci -vv

Тест пропускной способности

Я использую iperf для тестирования. Карты везут по ixgbe.

На стороне получателя я бегу

iperf -s 

На стороне передатчика:

iperf -c 192.168.1.10 -t 20 -B 192.168.1.20 iperf -c 192.168.1.11 -t 20 -B 192.168.1.21 

И теперь я получаю около 4.x Гб на интерфейс. Если я запускаю только один интерфейс, я получаю 9.x Гб.

Попытки конфигурации

Я просмотрел сайты SE и много других статей. Вот три полезных, которые я нашел.

  1. Подключение к сети - настройка пропускной способности сетевого адаптера Intel®
  2. https://www.kernel.org/doc/Documentation/networking/ixgbe.txt
  3. http://www.redhat.com/promo/summit/2008/downloads/pdf/Thursday/Mark_Wagner.pdf (PDF)

Две вещи, которые действительно помогли:

  1. Использование гигантских кадров, установив MTU на 9000.
  2. Увеличение настроек REMM в /etc/sysctl.conf

Тем не менее, я все еще работаю на 9.5Gbe вместе для обоих каналов. Я думаю, что я должен получить 9Gbe или больше за канал.

Вещи, которые я пробовал без особого успеха:

  • Использовал ethtool -c для изменения объединения прерываний
  • Использовал ethtool для отключения / включения управления потоком

Редактирует согласно комментариям

Чтобы проверить загрузку процессора я использую mpstat -P ALL 5. На передающем сервере я вижу 61% загрузки.

01:12:59 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle ... 01:12:59 PM 4 0.00 0.00 61.33 0.00 0.00 9.38 0.00 0.00 29.29 

Это должно быть хорошо, верно? На ресивере вижу макс 30%.

Используя lspci, я получил следующее. Я могу опубликовать полные результаты при необходимости, но думаю, что это показывает необходимую информацию о pcie:

Отправитель:

1: LnkCap: Port #16, Speed 5GT/s, Width x8, ASPM L0s, Latency L0 <2us, L1 <32us ClockPM- Surprise- LLActRep- BwNot- LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk- ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 5GT/s, Width x8, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- DevCap2: Completion Timeout: Range ABCD, TimeoutDis+ DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -6dB Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance De-emphasis: -6dB 2: LnkCap: Port #16, Speed 5GT/s, Width x8, ASPM L0s, Latency L0 <2us, L1 <32us ClockPM- Surprise- LLActRep- BwNot- LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk- ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 5GT/s, Width x8, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- DevCap2: Completion Timeout: Range ABCD, TimeoutDis+ DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -6dB Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance De-emphasis: -6dB 

Получатель:

 1: LnkCap: Port #0, Speed 5GT/s, Width x8, ASPM L0s, Latency L0 <1us, L1 <8us ClockPM- Surprise- LLActRep- BwNot- LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 5GT/s, Width x4, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- DevCap2: Completion Timeout: Range ABCD, TimeoutDis+ DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -6dB Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance De-emphasis: -6dB 2: LnkCap: Port #0, Speed 5GT/s, Width x8, ASPM L0s, Latency L0 <1us, L1 <8us ClockPM- Surprise- LLActRep- BwNot- LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 5GT/s, Width x4, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- DevCap2: Completion Timeout: Range ABCD, TimeoutDis+ DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -6dB Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance De-emphasis: -6dB 

5 G / T на x8 должно быть много, верно?

1
`И теперь я получаю 4.x Gb на интерфейс. Если я запускаю только один интерфейс, я получаю 9.x Гб. Вы уверены, что других узких мест нет, и ваша проблема в сетевых интерфейсах? Ваш процессор исчерпан или что-то? Zoredache 9 лет назад 1
Или ваша шина PCI Express? https://communities.intel.com/community/wired/blog/2009/06/08/understanding-pci-express-bandwidth cpt_fink 9 лет назад 2
Шина PCI является общим узким местом для карт 10G. MaQleod 9 лет назад 0
Ах, хорошие моменты! Спасибо! Я немного не в себе, но думаю, что предоставил правильную информацию. Если нет, дайте мне знать. Кажется, что 5G / T в секунду на x8 должно быть достаточно, но я буду продолжать искать. Nate 9 лет назад 0

0 ответов на вопрос