drboe
Member
Ich habe auf einem Acer Aspire X3900 mit CPU i5-650 opensuse 11.2-64 Bit aufgespielt. Nach der Inbetriebnahme stellt sich heraus, dass die Netzwerk-Performance unter aller Sau ist. Die Gigabit-Netzwerkkarte ist onboard und vom Typ Intel 82578DC. Unter Windows 7, das auf einer anderen Partition installiert ist, beträgt der Durchsatz ca. 75 MB/s, gemessen mit einer 1,5 GB Datei. Unter Linux wurden zunächst nicht einmal 1 MB/s erreicht. 'ethtool eth0' zeigte dann, dass für den Parameter speed regelmäßig nur 10 Mbit/s und full duplex eingestellt wurden. Versuche mit ethtool manuell andere Geschwindigkeiten als 10 MBit/s einzustellen, führten zu "unknown" bei speed und Duplex-Betriebsart. speed=1000 führte dazu, das keine Verbindung mit dem Netz mehr zustande kam. Mit 'speed 100 duplex full autoneg on' wurden immerhin Transferraten von 7-8 MB/s gegen den Server erzielt. Zwar ein Faktor 7 bzw. 8, aber kein wirklich befriedigendes Ergebnis. Nach der Installation des Moduls intel-e1000e-kmp-desktop-1.1.2.1a_2.6.31.5_0.1-15.1.x86_64.rpm von http://download.opensuse.org/repositories/home:/weberho:/kernel-modules/openSUSE_11.2/ wurde es erstmals möglich speed=1000 einzustellen. Allerdings liegt derzeit der maximal erreichbare Durchsatz nur bei 15-20 MB/s, mithin immer noch um einen Faktor 4-5 unter dem Wert, der sich mit Windows 7 reproduzierbar erreichen lässt. Ich mag es gar nicht, wenn Windows faktisch eine unerreichbare Referenz darstellt, würde mich aber letzlich über einen weiteren Faktor 2 schon sehr freuen.
Frage: Was kann ich tun, um die Netzwerkperformance zu verbessern? Aktuelle tcp-Werte laut 'sysctl -a | fgrep tcp':
NB: der Server, gegen den ich teste, läuft unter opensuse 11.1 und kommuniziert über einen GB-Realtek-Adapter, der sich bei der Installation direkt und problemlos auf Gigabit-Betrieb eingestellt hat. Die Tests führe ich im lokalen Netz durch. Zwischen Desktop und Server liegen 2 Kabel Cat 5.E je 3 Meter und ein Gigabit-Switch von Longshine. Da in der Kommunikation Windows <-> Server über die gleiche Strecke deutlich bessere Werte erreicht werden, ist die HW nicht das Problem, wenn man davon absieht, dass die Intel-NIC bzw. deren Treiber sich erkennbar problematisch verhalten. Leider lässt sich in dem kleinen PC (SFF) praktisch keine zweite Netzwerkarte einbauen, mit der man dieser Problematik ggf. ausweichen könnte.
M. Boettcher
Frage: Was kann ich tun, um die Netzwerkperformance zu verbessern? Aktuelle tcp-Werte laut 'sysctl -a | fgrep tcp':
Code:
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_retrans_collapse = 1
net.ipv4.tcp_syn_retries = 5
net.ipv4.tcp_synack_retries = 5
net.ipv4.tcp_max_orphans = 65536
net.ipv4.tcp_max_tw_buckets = 180000
net.ipv4.tcp_keepalive_time = 7200
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_intvl = 75
net.ipv4.tcp_retries1 = 3
net.ipv4.tcp_retries2 = 15
net.ipv4.tcp_fin_timeout = 60
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_abort_on_overflow = 0
net.ipv4.tcp_stdurg = 0
net.ipv4.tcp_rfc1337 = 0
net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.tcp_orphan_retries = 0
net.ipv4.tcp_fack = 1
net.ipv4.tcp_reordering = 3
net.ipv4.tcp_ecn = 0
net.ipv4.tcp_dsack = 1
net.ipv4.tcp_mem = 366528 488704 733056
net.ipv4.tcp_wmem = 4096 16384 4194304
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.tcp_app_win = 31
net.ipv4.tcp_adv_win_scale = 2
net.ipv4.tcp_tw_reuse = 0
net.ipv4.tcp_frto = 2
net.ipv4.tcp_frto_response = 0
net.ipv4.tcp_low_latency = 0
net.ipv4.tcp_no_metrics_save = 0
net.ipv4.tcp_moderate_rcvbuf = 1
net.ipv4.tcp_tso_win_divisor = 3
net.ipv4.tcp_congestion_control = cubic
net.ipv4.tcp_abc = 0
net.ipv4.tcp_mtu_probing = 0
net.ipv4.tcp_base_mss = 512
net.ipv4.tcp_workaround_signed_windows = 0
net.ipv4.tcp_dma_copybreak = 4096
net.ipv4.tcp_slow_start_after_idle = 1
net.ipv4.tcp_available_congestion_control = cubic reno
net.ipv4.tcp_allowed_congestion_control = cubic reno
net.ipv4.tcp_max_ssthresh = 0
M. Boettcher