Intel 이중 포트 82599EB 10 기가비트의 예상 처리량을 얻는 데 문제가 있습니다. 나는 많은 것을 시도해보고 내가 놓친 것을 시도 할 수있는 것이 있는지 알고 싶다.
내 하드웨어 구성
OpenSUSE가있는 두 대의 서버와 인텔 듀얼 포트 각각 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 Gb를 얻고 있습니다. 하나의 인터페이스 만 실행하면 9.x Gb가됩니다.
구성 시도
나는 SE 사이트와 다른 많은 기사를 둘러 보았다. 내가 찾은 세 가지 유용한 것들이있다.
- 네트워크 연결 - 튜닝 인텔 ® 이더넷 어댑터 처리량 성능
- 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
댓글 당 수정
사용중인 CPU 사용률을 테스트하려면 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에서 충분해야합니까?
And I am now getting around 4.x Gb per interface. If I run only one interface, I get 9.x Gb.
다른 병목 현상이없고 네트워크 인터페이스 문제가 있습니까? 귀하의 CPU가 초과 되었습니까?