Hintergrund:
Ich habe eine hochvolumige Caching-Nameserver-Umgebung (Redhat Enterprise Linux 5.8, IBM System x3550) geerbt, die inkonsistente Ringpuffereinstellungen aufweist: 1020 für eth0 und 255 für eth1. eth0 ist mit Switch 1 seines lokalen Rechenzentrums verbunden, eth1 ist mit Switch 2 desselben verbunden. Jeder Server im Cluster wechselt zwischen eth0 oder eth1 als aktiver Schnittstelle, und jeder Cluster befindet sich in einer anderen Region. Die Ringpuffer müssen offensichtlich konsistent gemacht werden.
Hier wird es schwieriger: Ich habe das oben genannte Problem entdeckt, als ich untersucht habe, warum einige der Nameserver häufig Fehler "Fehler beim Senden der Antwort: nicht gesetzt" protokollieren, die laut ISC-Wissensdatenbank mit einer ausgehenden Überlastung zusammenhängen . Server mit der höheren Ringpuffereinstellung (1020) werfen weniger Pakete auf ifconfig ab (wie zu erwarten), protokollieren jedoch den oben genannten Fehler mit großer Häufigkeit, etwa 20.000 Mal pro Tag in einer meiner höchsten Lastgruppen. Wir nennen das "Gruppe 1". Die Server mit der Einstellung für den unteren Ringpuffer (255) verwerfen deutlich mehr eingehende Pakete pro Tag (wiederum erwartet), weisen jedoch weitaus weniger Fälle des BIND-Fehlers auf, normalerweise 0-150 in derselben Lastgruppe.
Auch hier kein großes Rätsel. Das Zwischenspeichern von DNS ist ein rekursiver Dienst: Wenn etwas nicht zwischengespeichert wird, muss der Server mehrere Abfragen für diese eine Frage durchführen, bis er schließlich eine Antwort zurückgeben kann. Es ist eine (eins in) -> (viele aus) Abfragebeziehung. Das Korrigieren der RX-Ringpuffer sollte dazu führen, dass diese Zahl auf der ganzen Linie einem neuen Wert entspricht. Von dort aus ist es wahrscheinlich eine gute Idee, die ausgehende Netzwerkwarteschlange des Kernels in proc (wmem_max / wmem_default) zu optimieren.
Ich mag es, den Einfluss von Konfigurationsänderungen auf ein Leistungsproblem abschätzen zu können. Deshalb habe ich einen Bericht geschrieben, um einige Daten zu sammeln, bevor ich anfing, Produktionsänderungen vorzunehmen. Hier ist ein Beispiel für die Ausgabe für die ersten beiden Server in Gruppe 1:
group1-01
RX: 7166.27/sec av.
TX: 7432.57/sec av.
RXDROP: 7.43/sec av.
unset_err: 27633
group1-02
RX: 7137.37/sec av.
TX: 7398.50/sec av.
RXDROP: 9.94/sec av.
unset_err: 107
Dies sind die Formeln. Beachten Sie, dass dies ein lokales Skript ist und keine Abhängigkeit von Shell-Skripten besteht, die pro Server verwaltet werden müssen.
RXPACK=$(ssh $server "sar -n DEV -f /var/log/sa/sa$(date --date=yesterday '+%d') | grep \"Average: .*\$(awk '{if (\$2 == "00000000") { print \$1 }}' /proc/net/route)\" | awk '{print \$3}'" 2>/dev/null)
TXPACK=$(ssh $server "sar -n DEV -f /var/log/sa/sa$(date --date=yesterday '+%d') | grep \"Average: .*\$(awk '{if (\$2 == "00000000") { print \$1 }}' /proc/net/route)\" | awk '{print \$4}'" 2>/dev/null)
RXDROP=$(ssh $server "sar -n EDEV -f /var/log/sa/sa$(date --date=yesterday '+%d') | grep \"Average: .*\$(awk '{if (\$2 == "00000000") { print \$1 }}' /proc/net/route)\" | awk '{print \$6}'" 2>/dev/null)
TXDROP=$(ssh $server "sudo grep 'error sending response: unset' /var/log/dns_named.1" 2>/dev/null | wc -l)
Sobald ich diesen Bericht in allen meinen Caching-DNS-Umgebungen ausführe, stelle ich fest, dass eine andere Gruppe mit nahezu identischer Paketlast, die wir Gruppe 2 nennen, überhaupt keine Probleme hat :
group2-01
RX: 7066.44/sec av.
TX: 7345.95/sec av.
RXDROP: 0.00/sec av.
unset_err: 0
group2-02
RX: 7019.18/sec av.
TX: 7312.47/sec av.
RXDROP: 0.00/sec av.
unset_err: 0
Die Frage:
Warum verhält sich Gruppe 2 so, ohne dass die RX-Ringpuffer oder net.core.wmem_default
/ weiter angepasst werden müssen net.core.wmem_max
? Ich muss die Ringpuffer normalisieren, egal was passiert, aber ich würde gerne verstehen, was hier sonst noch los ist, bevor ich anfange, mit wmem-Werten in / proc zu spielen.
Das einzige, woran ich denken kann, ist, dass die Warteschlange von der Anwendung schneller geleert wird, aber die Optimierung des Netzwerkstapels ist nicht etwas, mit dem ich viel praktische Erfahrung habe, und ich würde gerne Zweitmeinungen einholen. (Meine Augen leuchten bei einigen der Namen der Ethtool-Zähler, ich werde es nicht leugnen.)
Ich habe Folgendes als Möglichkeiten beseitigt. Beweise folgen nach dem Teiler.
- Das Ringpuffer-Layout ist das gleiche. (erster Server von Gruppe1 und Gruppe2 konfiguriert gleich, zweiter Server von Gruppe1 und Gruppe2 gleich konfiguriert)
- Das Standard-Gateway-Layout ist das gleiche.
- Die Netzwerkkarten sind gleich. (Broadcom BCM5708)
- Die von ethtool gemeldete Firmware-Version ist dieselbe. (bc 4.0.3 ipms 1.6.0)
sysctl -a
Die Ausgabe stimmt mit den ersten Servern beider Gruppen und den zweiten Servern beider Gruppen überein. (ausgenommen Kernel- und fs-Abschnitte)- Die Gesamtzahl der Server in Gruppe 1 und Gruppe 2 ist gleich. (10)
Aus Gründen der Vertraulichkeit kann ich die RAW-Datei "named.conf" oder den Grep-Filter, den ich zum Ausschließen von Informationen verwende, nicht anzeigen. Sie müssen mein Wort dafür nehmen, dass die folgenden Konfigurationsparameter zwischen allen vier Servern konstant sind:
notify no;
allow-transfer { none; };
allow-recursion { any; };
allow-query { any; };
allow-query-cache { any; };
recursive-clients 100000;
max-cache-size 2G;
max-ncache-ttl 900;
Im Folgenden finden Sie zahlreiche Systeminformationen. Der "Hosthash" soll nur zeigen, dass jede Iteration der Schleife tatsächlich einen anderen Server trifft, ohne den tatsächlichen Hostnamen preiszugeben.
Host-Hashes:
group1-1: dc78abcb154b74c87feecb3f35222263d40c028c
group1-2: 9fe491d58fd1e7d4e21e5bf10c164e4cf66e884b
group2-1: fc76bb3ee1ff580c6aba0d685713bb4145bd5fe3
group2-2: b7550c65d37622a131b1e47f066773defbb4d817
for server in $group1_1 $group1_2 $group2_1 $group2_2
do
echo ____________________
ssh $server "echo -en hosthash: \$(echo \$HOSTNAME | sha1sum)\\\n\\\n &&
SARFILE=/var/log/sa/sa\$(date --date=yesterday '+%d') &&
uname -srvmpio &&
sudo /usr/sbin/dmidecode -s system-product-name
dmesg | grep Broadcom &&
head /proc/cpuinfo &&
GWIF=\$(awk '{if (\$2 == 00000000) { print \$1 }}' /proc/net/route) &&
sar -n DEV -f \$SARFILE | egrep '(IFACE|Average)' &&
sar -n EDEV -f \$SARFILE | egrep '(IFACE|Average)' &&
sudo /sbin/ethtool \$GWIF &&
sudo /sbin/ethtool -i \$GWIF &&
sudo /sbin/ethtool -g \$GWIF &&
sudo /sbin/ethtool -c \$GWIF &&
sudo /sbin/ethtool -S \$GWIF &&
echo sysctl linecount: \$(sudo /sbin/sysctl -a | egrep -v '^(fs|kernel)' | wc -l) &&
echo sysctl hash: \$(sudo /sbin/sysctl -a | egrep -v '^(fs|kernel)' | sha1sum)"
done
Ausgabe:
____________________
hosthash: dc78abcb154b74c87feecb3f35222263d40c028c -
Linux 2.6.18-308.16.1.el5 #1 SMP Tue Sep 18 07:21:07 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux
IBM System x3550 -[7978AC1]-
bnx2: Broadcom NetXtreme II Gigabit Ethernet Driver bnx2 v2.1.11 (July 20, 2011)
eth0: Broadcom NetXtreme II BCM5708 1000Base-T (B2) PCI-X 64-bit 133MHz found at mem c8000000, IRQ 90, node addr 001a649db00e
eth1: Broadcom NetXtreme II BCM5708 1000Base-T (B2) PCI-X 64-bit 133MHz found at mem ce000000, IRQ 177, node addr 001a649db010
cnic: Broadcom NetXtreme II CNIC Driver cnic v2.5.7 (July 20, 2011)
Broadcom NetXtreme II iSCSI Driver bnx2i v2.7.0.3 (Aug 04, 2011)
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Xeon(R) CPU E5420 @ 2.50GHz
stepping : 6
cpu MHz : 2493.750
cache size : 6144 KB
physical id : 0
siblings : 4
12:00:01 AM IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s
Average: lo 1269.15 1269.15 206600.39 206600.39 0.00 0.00 0.00
Average: eth0 7166.27 7432.57 704051.80 2419779.42 0.00 0.00 0.94
Average: eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:00:01 AM IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s
Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: eth0 0.00 0.00 0.00 7.43 0.00 0.00 0.00 0.00 0.00
Average: eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
driver: bnx2
version: 2.1.11
firmware-version: bc 4.0.3 ipms 1.6.0
bus-info: 0000:04:00.0
Ring parameters for eth0:
Pre-set maximums:
RX: 2040
RX Mini: 0
RX Jumbo: 8160
TX: 255
Current hardware settings:
RX: 1020
RX Mini: 0
RX Jumbo: 0
TX: 255
Coalesce parameters for eth0:
Adaptive RX: off TX: off
stats-block-usecs: 999936
sample-interval: 0
pkt-rate-low: 0
pkt-rate-high: 0
rx-usecs: 18
rx-frames: 12
rx-usecs-irq: 18
rx-frames-irq: 2
tx-usecs: 80
tx-frames: 20
tx-usecs-irq: 18
tx-frames-irq: 2
rx-usecs-low: 0
rx-frame-low: 0
tx-usecs-low: 0
tx-frame-low: 0
rx-usecs-high: 0
rx-frame-high: 0
tx-usecs-high: 0
tx-frame-high: 0
NIC statistics:
rx_bytes: 1505439501410
rx_error_bytes: 0
tx_bytes: 4672574845104
tx_error_bytes: 0
rx_ucast_packets: 15315548049
rx_mcast_packets: 2035415
rx_bcast_packets: 1101989
tx_ucast_packets: 15505474251
tx_mcast_packets: 40018
tx_bcast_packets: 36019
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: 92309552
rx_65_to_127_byte_packets: 1243637891
rx_128_to_255_byte_packets: 790117566
rx_256_to_511_byte_packets: 127197337
rx_512_to_1023_byte_packets: 168929387
rx_1024_to_1522_byte_packets: 11591832
rx_1523_to_9022_byte_packets: 0
tx_64_byte_packets: 60586118
tx_65_to_127_byte_packets: 1976738758
tx_128_to_255_byte_packets: 2830395753
tx_256_to_511_byte_packets: 157607989
tx_512_to_1023_byte_packets: 1483716940
tx_1024_to_1522_byte_packets: 406821340
tx_1523_to_9022_byte_packets: 0
rx_xon_frames: 0
rx_xoff_frames: 0
tx_xon_frames: 116422
tx_xoff_frames: 134780
rx_mac_ctrl_frames: 0
rx_filtered_packets: 0
rx_ftq_discards: 0
rx_discards: 0
rx_fw_discards: 14015105
sysctl linecount: 504
sysctl hash: dd6aab90d0fd9ae90742c5f812a78734e2f2ff1c -
____________________
hosthash: 9fe491d58fd1e7d4e21e5bf10c164e4cf66e884b -
Linux 2.6.18-308.16.1.el5 #1 SMP Tue Sep 18 07:21:07 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux
IBM System x3550 -[7978EHU]-
bnx2: Broadcom NetXtreme II Gigabit Ethernet Driver bnx2 v2.1.11 (July 20, 2011)
eth0: Broadcom NetXtreme II BCM5708 1000Base-T (B2) PCI-X 64-bit 133MHz found at mem c8000000, IRQ 90, node addr 001a6479655c
eth1: Broadcom NetXtreme II BCM5708 1000Base-T (B2) PCI-X 64-bit 133MHz found at mem ce000000, IRQ 177, node addr 001a6479655e
cnic: Broadcom NetXtreme II CNIC Driver cnic v2.5.7 (July 20, 2011)
Broadcom NetXtreme II iSCSI Driver bnx2i v2.7.0.3 (Aug 04, 2011)
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Xeon(R) CPU E5420 @ 2.50GHz
stepping : 6
cpu MHz : 2493.746
cache size : 6144 KB
physical id : 0
siblings : 4
12:00:01 AM IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s
Average: lo 1261.04 1261.04 205548.08 205548.08 0.00 0.00 0.00
Average: eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: eth1 7137.37 7398.50 702340.35 2409580.71 0.00 0.00 0.97
Average: sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:00:01 AM IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s
Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: eth1 0.00 0.00 0.00 9.94 0.00 0.00 0.00 0.00 0.00
Average: sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
driver: bnx2
version: 2.1.11
firmware-version: bc 4.0.3 ipms 1.6.0
bus-info: 0000:06:00.0
Ring parameters for eth1:
Pre-set maximums:
RX: 2040
RX Mini: 0
RX Jumbo: 8160
TX: 255
Current hardware settings:
RX: 255
RX Mini: 0
RX Jumbo: 0
TX: 255
Coalesce parameters for eth1:
Adaptive RX: off TX: off
stats-block-usecs: 999936
sample-interval: 0
pkt-rate-low: 0
pkt-rate-high: 0
rx-usecs: 18
rx-frames: 12
rx-usecs-irq: 18
rx-frames-irq: 2
tx-usecs: 80
tx-frames: 20
tx-usecs-irq: 18
tx-frames-irq: 2
rx-usecs-low: 0
rx-frame-low: 0
tx-usecs-low: 0
tx-frame-low: 0
rx-usecs-high: 0
rx-frame-high: 0
tx-usecs-high: 0
tx-frame-high: 0
NIC statistics:
rx_bytes: 1501719289640
rx_error_bytes: 0
tx_bytes: 4654179094291
tx_error_bytes: 0
rx_ucast_packets: 15253610508
rx_mcast_packets: 2108112
rx_bcast_packets: 1136240
tx_ucast_packets: 15438361249
tx_mcast_packets: 40135
tx_bcast_packets: 1721
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: 92376678
rx_65_to_127_byte_packets: 1183040190
rx_128_to_255_byte_packets: 788176623
rx_256_to_511_byte_packets: 126838328
rx_512_to_1023_byte_packets: 168170816
rx_1024_to_1522_byte_packets: 13350337
rx_1523_to_9022_byte_packets: 0
tx_64_byte_packets: 60806588
tx_65_to_127_byte_packets: 1955234150
tx_128_to_255_byte_packets: 2806601346
tx_256_to_511_byte_packets: 154015585
tx_512_to_1023_byte_packets: 1466206531
tx_1024_to_1522_byte_packets: 405928513
tx_1523_to_9022_byte_packets: 0
rx_xon_frames: 0
rx_xoff_frames: 0
tx_xon_frames: 150648
tx_xoff_frames: 173552
rx_mac_ctrl_frames: 0
rx_filtered_packets: 1
rx_ftq_discards: 0
rx_discards: 0
rx_fw_discards: 19605427
sysctl linecount: 504
sysctl hash: 4626e3788c72e091487afe1e3a7cfd32278ab07d -
____________________
hosthash: fc76bb3ee1ff580c6aba0d685713bb4145bd5fe3 -
Linux 2.6.18-308.16.1.el5 #1 SMP Tue Sep 18 07:21:07 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux
IBM System x3550 -[7978AC1]-
bnx2: Broadcom NetXtreme II Gigabit Ethernet Driver bnx2 v2.1.11 (July 20, 2011)
eth0: Broadcom NetXtreme II BCM5708 1000Base-T (B2) PCI-X 64-bit 133MHz found at mem c8000000, IRQ 90, node addr 001a649dc68a
eth1: Broadcom NetXtreme II BCM5708 1000Base-T (B2) PCI-X 64-bit 133MHz found at mem ce000000, IRQ 177, node addr 001a649dc68c
cnic: Broadcom NetXtreme II CNIC Driver cnic v2.5.7 (July 20, 2011)
Broadcom NetXtreme II iSCSI Driver bnx2i v2.7.0.3 (Aug 04, 2011)
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Xeon(R) CPU E5420 @ 2.50GHz
stepping : 6
cpu MHz : 2493.750
cache size : 6144 KB
physical id : 0
siblings : 4
12:00:01 AM IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s
Average: lo 1891.67 1891.67 266593.77 266593.77 0.00 0.00 0.00
Average: eth0 7066.44 7345.95 730519.41 2215508.99 0.00 0.00 4.37
Average: eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:00:01 AM IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s
Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
driver: bnx2
version: 2.1.11
firmware-version: bc 4.0.3 ipms 1.6.0
bus-info: 0000:04:00.0
Ring parameters for eth0:
Pre-set maximums:
RX: 2040
RX Mini: 0
RX Jumbo: 8160
TX: 255
Current hardware settings:
RX: 1020
RX Mini: 0
RX Jumbo: 0
TX: 255
Coalesce parameters for eth0:
Adaptive RX: off TX: off
stats-block-usecs: 999936
sample-interval: 0
pkt-rate-low: 0
pkt-rate-high: 0
rx-usecs: 18
rx-frames: 12
rx-usecs-irq: 18
rx-frames-irq: 2
tx-usecs: 80
tx-frames: 20
tx-usecs-irq: 18
tx-frames-irq: 2
rx-usecs-low: 0
rx-frame-low: 0
tx-usecs-low: 0
tx-frame-low: 0
rx-usecs-high: 0
rx-frame-high: 0
tx-usecs-high: 0
tx-frame-high: 0
NIC statistics:
rx_bytes: 4640887074833
rx_error_bytes: 0
tx_bytes: 12640942400790
tx_error_bytes: 0
rx_ucast_packets: 46405845860
rx_mcast_packets: 14487857
rx_bcast_packets: 3476467
tx_ucast_packets: 47159091638
tx_mcast_packets: 118147
tx_bcast_packets: 5504
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: 136463411
rx_65_to_127_byte_packets: 4245502343
rx_128_to_255_byte_packets: 2357984838
rx_256_to_511_byte_packets: 355610202
rx_512_to_1023_byte_packets: 608223572
rx_1024_to_1522_byte_packets: 65320154
rx_1523_to_9022_byte_packets: 0
tx_64_byte_packets: 112166114
tx_65_to_127_byte_packets: 3010346100
tx_128_to_255_byte_packets: 4087240164
tx_256_to_511_byte_packets: 1625596725
tx_512_to_1023_byte_packets: 3037109096
tx_1024_to_1522_byte_packets: 927187571
tx_1523_to_9022_byte_packets: 0
rx_xon_frames: 0
rx_xoff_frames: 0
tx_xon_frames: 79164
tx_xoff_frames: 89685
rx_mac_ctrl_frames: 0
rx_filtered_packets: 1
rx_ftq_discards: 0
rx_discards: 0
rx_fw_discards: 6857729
sysctl linecount: 504
sysctl hash: dd6aab90d0fd9ae90742c5f812a78734e2f2ff1c -
____________________
hosthash: b7550c65d37622a131b1e47f066773defbb4d817 -
Linux 2.6.18-308.16.1.el5 #1 SMP Tue Sep 18 07:21:07 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux
IBM System x3550 -[7978EHU]-
bnx2: Broadcom NetXtreme II Gigabit Ethernet Driver bnx2 v2.1.11 (July 20, 2011)
eth0: Broadcom NetXtreme II BCM5708 1000Base-T (B2) PCI-X 64-bit 133MHz found at mem c8000000, IRQ 90, node addr 00215e3f1ec4
eth1: Broadcom NetXtreme II BCM5708 1000Base-T (B2) PCI-X 64-bit 133MHz found at mem ce000000, IRQ 177, node addr 00215e3f1ec6
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Xeon(R) CPU E5420 @ 2.50GHz
stepping : 6
cpu MHz : 2493.753
cache size : 6144 KB
physical id : 1
siblings : 4
12:00:01 AM IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s
Average: lo 1883.04 1883.04 263726.79 263726.79 0.00 0.00 0.00
Average: eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: eth1 7019.18 7312.47 720911.92 2214861.10 0.00 0.00 1.02
Average: sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:00:01 AM IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s
Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
driver: bnx2
version: 2.1.11
firmware-version: bc 4.0.3 ipms 1.6.0
bus-info: 0000:06:00.0
Ring parameters for eth1:
Pre-set maximums:
RX: 2040
RX Mini: 0
RX Jumbo: 8160
TX: 255
Current hardware settings:
RX: 255
RX Mini: 0
RX Jumbo: 0
TX: 255
Coalesce parameters for eth1:
Adaptive RX: off TX: off
stats-block-usecs: 999936
sample-interval: 0
pkt-rate-low: 0
pkt-rate-high: 0
rx-usecs: 18
rx-frames: 12
rx-usecs-irq: 18
rx-frames-irq: 2
tx-usecs: 80
tx-frames: 20
tx-usecs-irq: 18
tx-frames-irq: 2
rx-usecs-low: 0
rx-frame-low: 0
tx-usecs-low: 0
tx-frame-low: 0
rx-usecs-high: 0
rx-frame-high: 0
tx-usecs-high: 0
tx-frame-high: 0
NIC statistics:
rx_bytes: 4621548539323
rx_error_bytes: 0
tx_bytes: 12598031299743
tx_error_bytes: 0
rx_ucast_packets: 46260356368
rx_mcast_packets: 5352446
rx_bcast_packets: 3474589
tx_ucast_packets: 47008853953
tx_mcast_packets: 118164
tx_bcast_packets: 5471
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: 126851062
rx_65_to_127_byte_packets: 4117708205
rx_128_to_255_byte_packets: 2346047550
rx_256_to_511_byte_packets: 356266112
rx_512_to_1023_byte_packets: 604666332
rx_1024_to_1522_byte_packets: 62938478
rx_1523_to_9022_byte_packets: 0
tx_64_byte_packets: 111216848
tx_65_to_127_byte_packets: 2984505931
tx_128_to_255_byte_packets: 4027485330
tx_256_to_511_byte_packets: 1577669672
tx_512_to_1023_byte_packets: 3015060448
tx_1024_to_1522_byte_packets: 933575954
tx_1523_to_9022_byte_packets: 0
rx_xon_frames: 0
rx_xoff_frames: 0
tx_xon_frames: 129873
tx_xoff_frames: 145090
rx_mac_ctrl_frames: 0
rx_filtered_packets: 1
rx_ftq_discards: 0
rx_discards: 0
rx_fw_discards: 6752713
sysctl linecount: 504
sysctl hash: 4626e3788c72e091487afe1e3a7cfd32278ab07d -
quelle
Antworten:
Sie fragen sich, ob die Box ein Dell ist? Es gibt ein bekanntes Problem mit dem bnx2i-Treiber und den von Dell gelieferten Chipsätzen. Das Ergebnis sind zufällig verworfene Pakete unter starker Netzwerklast. Es erscheint logisch, dass die abgestimmten Ringpuffer dies auslösen könnten, wenn dies der Fall ist.
Ich glaube, Dell bietet eine eigene Version des Treibers als Fix an. Die andere Lösung besteht darin, in modprobe.conf so etwas zu tun:
Optionen bnx2i disable_msi = 1
Es kann sowieso nicht schaden, es zu versuchen. Und x2 was kce gesagt hat. Eine der besten schriftlichen Fragen, die ich je hier gesehen habe.
quelle
modprobe.conf
Details erwähnt. Dies sind alles IBM System x3550-Server, und ich habe die Frage aktualisiert, um dies widerzuspiegeln. Ich hatte gehofft, ich würdeoptions
aufgrund Ihres Vorschlags einen Unterschied in der Modprobe finden , aber dort kein Glück. Überhaupt keine, nur Aliase für eth0 und eth1 bis bnx2. Ich habe auch nachgesehen/etc/modules.d/
.Selbst wenn Sie sicher sind, dass Sie eine vollständige Liste der Load Balancer-VIPs für Ihre Server haben, führen Sie trotzdem eine Paketerfassung durch. Nur weil Ihr Computer nicht auf ARP für eine IP-Adresse antwortet, bedeutet dies nicht, dass keine falschen Pakete an ihn gesendet werden können. Stellen Sie sicher, dass der an Ihre MAC-Adressen gesendete Datenverkehr mit den konfigurierten IP-Adressen übereinstimmt.
Ich schätze die Zeit, die die Leute in diese Frage gesteckt haben, aber hier fehlte meine eigene Sorgfalt. Im Nachhinein musste ich einen PCAP-Filter wie folgt erstellen:
Wo:
Es gab eine Reihe von Load-Balancer-VIPs, die mir nicht gegeben wurden (ich kontrolliere die LB nicht), und sie leiteten den Datenverkehr auf dem TCP-Port 53 auf eine Weise weiter, die zu RX-Verwerfungen führen würde. Das Verkehrsaufkommen auf diesen Legacy-IPs war so gering, dass es wahrscheinlich nicht von einem Administrator bemerkt wurde, der den Datenverkehr auf dem Kabel ansah.
quelle