Intel(R) 10 Gigabit PCI Express Network Driver performance degradation
Napisał: Patryk Krawaczyński
02/10/2015 w Administracja, Debug Brak komentarzy. (artykuł nr 487, ilość słów: 378)
O
statnio podczas testów linków 10G zauważyłem ciekawą zależność. Testując różne wersje jądra w systemie Ubuntu 12.04 ze względu na różne problemy z obsługą systemu plików ext4 na świat wyszedł inny błąd powiązany z sterownikiem sieciowym. Dla wersji jądra: Linux darkstar 3.13.0-32-generic #57~precise1-Ubuntu SMP test linków za pomocą iperf prezentuje się następująco:
Server listening on TCP port 5001 TCP window size: 85.3 KByte (default) ------------------------------------------------------------ [ 4] local 10.1.1.1 port 5001 connected with 10.1.1.2 port 52049 [ ID] Interval Transfer Bandwidth [ 4] 0.0-10.0 sec 11.0 GBytes 9.40 Gbits/sec
Wersja sterownika ixgbe to: 3.15.1-k. Testy dla wersji jądra: 3.19.7-031907-generic uzyskały wydajność:
------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 85.3 KByte (default) ------------------------------------------------------------ [ 4] local 10.1.1.1 port 5001 connected with 10.1.1.2 port 51458 [ ID] Interval Transfer Bandwidth [ 4] 0.0-10.0 sec 9.69 GBytes 8.32 Gbits/sec
Z kolei dla 4.0.6-040006-generic:
------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 85.3 KByte (default) ------------------------------------------------------------ [ 4] local 10.1.1.1 port 5001 connected with 10.1.1.2 port 43605 [ ID] Interval Transfer Bandwidth [ 4] 0.0-10.0 sec 9.69 GBytes 8.33 Gbits/sec
Widać tutaj obniżenie wydajności o około 1.1 Gbit/s. Wspólnym mianownikiem tych dwóch ostatnich pomiarów był sterownik ixgbe w wersji 4.0.1-k.
Bonus: Dla ciekawości powtórzyłem test dla jądra 3.13 z wyłączonym timestamp (net.ipv4.tcp_timestamps=0
), aby przekonać się, jaki jest nakład na obliczenia znaczników czasu:
------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 85.3 KByte (default) ------------------------------------------------------------ [ 4] local 10.1.1.1 port 5001 connected with 10.1.1.2 port 53722 [ ID] Interval Transfer Bandwidth [ 4] 0.0-10.0 sec 11.1 GBytes 9.49 Gbits/sec [ 5] local 10.1.1.1 port 5001 connected with 10.1.1.2 port 53723 [ 5] 0.0-10.0 sec 11.1 GBytes 9.49 Gbits/sec
Jak widać testy powtórzone dwa razy wskazują różnicę 92.16 Mb/s dla przepustowości oraz 102.4 MB dla ilości przetransferowanych danych. Testowaną kartą sieciową była: Ethernet controller: Intel Corporation 82599EB 10-Gigabit SFI/SFP+ Network Connection dostarczonej w platformie: Dell PowerEdge R730xd.
Więcej informacji: Linux ixgbe* Base Driver Overview and Installation