У меня проблемы с получением ожидаемой пропускной способности 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 и много других статей. Вот три полезных, которые я нашел.
- Подключение к сети - настройка пропускной способности сетевого адаптера Intel®
- https://www.kernel.org/doc/Documentation/networking/ixgbe.txt
- http://www.redhat.com/promo/summit/2008/downloads/pdf/Thursday/Mark_Wagner.pdf (PDF)
Две вещи, которые действительно помогли:
- Использование гигантских кадров, установив MTU на 9000.
- Увеличение настроек rmem в
/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 должно быть много, верно?