sombrero2007 Geschrieben 14. Mai 2009 Geschrieben 14. Mai 2009 Hi @all, auf einen meiner Server (SLES 10 SP2) habe ich auf dem eth0 Interface beim Aufruf von ifconfig sehr viele drops von Packenten und diese werden immer mehr:eth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx inet addr:xx.xx.xx.xx Bcast:xx.xx.xx.xx Mask:xx.xx.xx.x UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1 [FONT="Arial Black"][COLOR="Red"]RX packets:141317235 errors:0 dropped:8363524 overruns:0 frame:0[/COLOR][/FONT] TX packets:130410447 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:83320472664 (79460.5 Mb) TX bytes:59843219416 (57070.9 Mb) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:10637355 errors:0 dropped:0 overruns:0 frame:0 TX packets:10637355 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:9698699158 (9249.4 Mb) TX bytes:9698699158 (9249.4 Mb)An was könnte das liegen? Zitieren
charmanta Geschrieben 18. Mai 2009 Geschrieben 18. Mai 2009 ganz grob gesagt darf ein System Pakete droppen, wenn es sie nicht verarbeiten kann, z.b. weil Storage oder System langsamer ist als der Netzwerkcontroller. Was ist das für ein Ethernet ? Ist es denkbar, daß Dir mbufs im System fehlen und deswegen Pakete verworfen werden ? Könnte auf einem Bastelsystem auch an falschen Treibern für den Controller liegen :floet: Zitieren
sombrero2007 Geschrieben 18. Mai 2009 Autor Geschrieben 18. Mai 2009 Es handelt sich um Gigabit Karten aber genau kann ich das nicht sagen, muss ich mal morgen schauen. Wie kann ich analysieren wo das Problem liegt, bzw. wie kann ich sehen ob der falsche Treiber installiert wurde? Zitieren
hades Geschrieben 18. Mai 2009 Geschrieben 18. Mai 2009 Was geben Dir ethtool eth0 ethtool -k eth0 ethtool -S eth0 aus? Zitieren
sombrero2007 Geschrieben 18. Mai 2009 Autor Geschrieben 18. Mai 2009 ethtool eth0Settings for eth0: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised auto-negotiation: Yes Speed: 1000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 1 Transceiver: internal Auto-negotiation: on Supports Wake-on: g Wake-on: g Link detected: yes ethtool -k eth0Offload parameters for eth0: rx-checksumming: on tx-checksumming: on scatter-gather: on tcp segmentation offload: on ethtool -S eth0NIC statistics: rx_bytes: 145386575924 rx_error_bytes: 0 tx_bytes: 98437042726 tx_error_bytes: 0 rx_ucast_packets: 206523494 rx_mcast_packets: 9022 rx_bcast_packets: 12756842 tx_ucast_packets: 197668869 tx_mcast_packets: 0 tx_bcast_packets: 15333 tx_mac_errors: 0 tx_carrier_errors: 0 rx_crc_errors: 0 rx_align_errors: 0 tx_single_collisions: 0 tx_multi_collisions: 0 tx_deferred: 0 tx_excess_collisions: 0 tx_late_collisions: 0 tx_total_collisions: 0 rx_fragments: 0 rx_jabbers: 0 rx_undersize_packets: 0 rx_oversize_packets: 0 rx_64_byte_packets: 32357706 rx_65_to_127_byte_packets: 65483858 rx_128_to_255_byte_packets: 6460762 rx_256_to_511_byte_packets: 9554330 rx_512_to_1023_byte_packets: 8290527 rx_1024_to_1522_byte_packets: 97142175 rx_1523_to_9022_byte_packets: 0 tx_64_byte_packets: 33342739 tx_65_to_127_byte_packets: 60429869 tx_128_to_255_byte_packets: 14234465 tx_256_to_511_byte_packets: 3890827 tx_512_to_1023_byte_packets: 51597637 tx_1024_to_1522_byte_packets: 34188665 tx_1523_to_9022_byte_packets: 0 rx_xon_frames: 0 rx_xoff_frames: 0 tx_xon_frames: 0 tx_xoff_frames: 0 rx_mac_ctrl_frames: 0 rx_filtered_packets: 3129962 rx_discards: 0 rx_fw_discards: 12799419 Zitieren
hades Geschrieben 21. Mai 2009 Geschrieben 21. Mai 2009 Was gibt Dir: sysctl -a | grep mem aus? Zitieren
sombrero2007 Geschrieben 22. Mai 2009 Autor Geschrieben 22. Mai 2009 Hi, folgende Ausgabe habe ich bekommen:net.ipv4.tcp_rmem = 4096 87380 174760 net.ipv4.tcp_wmem = 4096 16384 131072 net.ipv4.tcp_mem = 196608 262144 393216 net.ipv4.igmp_max_memberships = 20 net.core.optmem_max = 20480 net.core.rmem_default = 126976 net.core.wmem_default = 126976 net.core.rmem_max = 131071 net.core.wmem_max = 131071 vm.lowmem_reserve_ratio = 256 256 32 vm.overcommit_memory = 0 Zitieren
charmanta Geschrieben 22. Mai 2009 Geschrieben 22. Mai 2009 jetzt will ich auch mal "netstat -s inet" der letzte Bereich "TcpExt" interessiert mich. Irgendwie fehlt mir unter Linux ein "netstat -m", wo ich die mbufs und auch die Overruns sehe. Gibts sowas denn nicht ???? Zitieren
hades Geschrieben 22. Mai 2009 Geschrieben 22. Mai 2009 (bearbeitet) Du erlaubst mit net.ipv4.tcp_rmem=4096 87380 174760 beim Empfangen eine TCP Window Size von bis zu 174760 Byte. Der maximale Buffer fuer alle Protokolle zum Empfangen: net.core.rmem_max = 131071 ist hier aber zu klein bemessen. Auch wuerde ich hier anstelle der krummen 170,6640625 kByte (174760 Byte) eher 256 kByte (262144 Byte) setzen. Bearbeitet 22. Mai 2009 von hades Zitieren
sombrero2007 Geschrieben 22. Mai 2009 Autor Geschrieben 22. Mai 2009 (bearbeitet) @charmanta TcpExt: 65 invalid SYN cookies received 155 resets received for embryonic SYN_RECV sockets 89 packets pruned from receive queue because of socket buffer overrun ArpFilter: 0 14341 TCP sockets finished time wait in fast timer 10 time wait sockets recycled by time stamp 713178 delayed acks sent 316 delayed acks further delayed because of locked socket Quick ack mode was activated 3908 times 29091413 packets directly queued to recvmsg prequeue. 19881778 packets directly received from backlog 1892094685 packets directly received from prequeue 31118010 packets header predicted 1272468 packets header predicted and directly queued to user TCPPureAcks: 1118011 TCPHPAcks: 30188520 TCPRenoRecovery: 2524 TCPSackRecovery: 1 TCPSACKReneging: 0 TCPFACKReorder: 0 TCPSACKReorder: 0 TCPRenoReorder: 277 TCPTSReorder: 128 TCPFullUndo: 1038 TCPPartialUndo: 640 TCPDSACKUndo: 0 TCPLossUndo: 1 TCPLoss: 0 TCPLostRetransmit: 0 TCPRenoFailures: 117 TCPSackFailures: 0 TCPLossFailures: 42 TCPFastRetrans: 1991 TCPForwardRetrans: 0 TCPSlowStartRetrans: 668 TCPTimeouts: 3276 TCPRenoRecoveryFail: 674 TCPSackRecoveryFail: 0 TCPSchedulerFailed: 2 TCPRcvCollapsed: 5439 TCPDSACKOldSent: 4 TCPDSACKOfoSent: 0 TCPDSACKRecv: 2 TCPDSACKOfoRecv: 0 TCPAbortOnSyn: 0 TCPAbortOnData: 14 TCPAbortOnClose: 56 TCPAbortOnMemory: 0 TCPAbortOnTimeout: 32 TCPAbortOnLinger: 0 TCPAbortFailed: 0 TCPMemoryPressures: 0 @hades Habe ich das richtig verstanden, ich soll den Wert: net.ipv4.tcp_rmem setzen und das wars? Bearbeitet 22. Mai 2009 von sombrero2007 Zitieren
hades Geschrieben 22. Mai 2009 Geschrieben 22. Mai 2009 net.core.rmem_max = 262144 net.ipv4.tcp_rmem = 4096 87380 262144 net.core.rmem_max gilt fuer alle Protokolle als maximaler Empfangsbuffer. In diesen sollte auch die maximale TCP Window Size, die Du mit dem letzten Wert von net.ipv4.tcp_rmem definierst, reinpassen. Zitieren
sombrero2007 Geschrieben 22. Mai 2009 Autor Geschrieben 22. Mai 2009 Hi, hab das gerade in der /etc/sysctl.conf angepasst und mit sysctl -p aktiviert, aber die Drops steigen weiter an Zitieren
hades Geschrieben 22. Mai 2009 Geschrieben 22. Mai 2009 Was geben die folgende Befehle aus? lspci | grep Ethernet ethtool -i eth0 Welcher Kernel wird genutzt (uname -a)? Zitieren
sombrero2007 Geschrieben 23. Mai 2009 Autor Geschrieben 23. Mai 2009 Es werden nur zwei karten im Bonding genutz. lspci | grep Ethernet 03:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5708 Gigabit Ethernet (rev 12) 05:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5708 Gigabit Ethernet (rev 12) 0e:00.0 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet Controller (rev 06) 0e:00.1 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet Controller (rev 06) ethtool -i eth0 driver: bnx2 version: 1.6.7c firmware-version: 1.9.6 bus-info: 0000:05:00.0 Es wird der Standart SLES 10 SP2 Kernel verwendet. uname -a Linux systemname 2.6.16.60-0.21-smp #1 SMP Tue May 6 12:41:02 UTC 2008 x86_64 x86_64 x86_64 GNU/Linux Zitieren
hades Geschrieben 23. Mai 2009 Geschrieben 23. Mai 2009 (bearbeitet) Der Broadcom-Chip BCM5708 hat nach einer google-Recherche anscheinend mit linux Probleme. Ein Tip ist hier das Deaktivieren der Offloading Funktionen (TCP Segmentation Offloading, RX/TX Checksum Offloading...). Ausschalten mit: ethtool -K eth0 tso off ethtool -K eth0 rx off ethtool -K eth0 tx off ethtool -K eth0 sg off Das ist hier nicht persistent. Ich weiss nicht wo das bei SLES persistent gesetzt wird, vermutlich in der /etc/sysconfig/network/ifcfg-eth0 dort dann in den ethtool_options. Bei Broadcom gibt es fuer die BCM5708 einen neueren Linux-Treiber. Broadcom Corporation - Download NetXtreme II 1 Gigabit Drivers Wenn es onboard-NICs sind, dann solltest Du zuerst beim Server- bzw. Mainboardhersteller nachschauen ob es dort neuere Treiber gibt. Ein weiterer Tip ist hier das Ersetzen dieser BCM-NICs durch eine andere (z.B. durch die auch vorhandenen Intel NICs). Bearbeitet 23. Mai 2009 von hades Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.