ความคลาดเคลื่อนของประสิทธิภาพของแพ็กเก็ตคิวด้วย BIND nameserver


11

พื้นหลัง:

ฉันได้รับสภาพแวดล้อมแคชเนมเซิร์ฟเวอร์ที่มีปริมาณมาก (Redhat Enterprise Linux 5.8, IBM System x3550) ที่มีการตั้งค่าบัฟเฟอร์วงแหวนที่ไม่สอดคล้องกัน: 1020 สำหรับ eth0 และ 255 สำหรับ eth1 eth0 เชื่อมต่อกับสวิทช์ 1 ของดาต้าเซ็นเตอร์ในพื้นที่ของตน, eth1 เชื่อมต่อกับสวิทช์ 2 ของเดียวกัน ทุกเซิร์ฟเวอร์ในคลัสเตอร์จะสลับกันระหว่างว่า eth0 หรือ eth1 เป็นอินเตอร์เฟสที่ใช้งานอยู่และทุกคลัสเตอร์อยู่ในภูมิภาคอื่น เห็นได้ชัดว่าบัฟเฟอร์แหวนจะต้องทำให้สอดคล้องกัน

นี่คือสิ่งที่ได้รับ trickier: ผมค้นพบปัญหาดังกล่าวเมื่อค้นคว้าทำไมจำนวนของเซิร์ฟเวอร์ที่มีการเข้าสู่ระบบบ่อยข้อผิดพลาด "ส่งการตอบสนอง: ล้างข้อผิดพลาด" ซึ่งความรู้ ISC ที่แสดงให้เห็นเป็นที่เกี่ยวข้องกับความแออัดขาออก เซิร์ฟเวอร์ที่มีการตั้งค่าบัฟเฟอร์วงแหวนที่สูงขึ้น (1,020) จะวางแพ็กเก็ตน้อยลงบน ifconfig (อย่างที่คาดไว้) แต่มักจะบันทึกข้อผิดพลาดด้านบนด้วยความถี่ที่ดีเยี่ยม ~ 20k ครั้งต่อวันในกลุ่มโหลดสูงสุดของฉัน เราจะเรียกสิ่งนี้ว่า '' กลุ่ม 1 '' เซิร์ฟเวอร์ที่มีการตั้งค่าบัฟเฟอร์วงแหวนด้านล่าง (255) จะลดลงอย่างมากต่อแพ็คเก็ตขาเข้าต่อวัน (คาดว่าอีกครั้ง) แต่มีอินสแตนซ์ที่น้อยกว่าของข้อผิดพลาด BIND โดยทั่วไปแล้ว 0-150 ในกลุ่มโหลดเดียวกัน

ไม่ลึกลับอย่างมากที่นี่เช่นกัน การแคช DNS เป็นบริการแบบเรียกซ้ำ: หากไม่มีสิ่งใดที่แคชเซิร์ฟเวอร์จะต้องทำการสืบค้นหลายครั้งในนามของคำถามนั้นจนกว่าจะสามารถตอบกลับได้ในที่สุด มันเป็นความสัมพันธ์ของแบบสอบถาม (หนึ่งใน) -> (หลายรายการ) การแก้ไข RX ring บัฟเฟอร์ควรทำให้จำนวนนี้เท่ากันกับค่าใหม่ทั่วกระดานและจากนั้นอาจเป็นความคิดที่ดีในการปรับคิวเครือข่ายขาออกของเคอร์เนลใน proc (wmem_max / wmem_default)


ฉันชอบความสามารถในการวัดอิทธิพลของการเปลี่ยนแปลงการกำหนดค่าต่อปัญหาประสิทธิภาพดังนั้นฉันจึงเขียนรายงานเพื่อรวบรวมข้อมูลบางอย่างก่อนที่ฉันจะเริ่มการเปลี่ยนแปลงการผลิต นี่คือตัวอย่างของผลลัพธ์สำหรับสองเซิร์ฟเวอร์แรกในกลุ่ม 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

นี่คือสูตร โปรดทราบว่านี่เป็นสคริปต์ท้องถิ่นและไม่มีการพึ่งพาเชลล์สคริปต์ที่ต้องดูแลรักษาต่อเซิร์ฟเวอร์

    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)

เมื่อฉันเริ่มเรียกใช้รายงานนี้ในทุกสภาพแวดล้อมแคช DNS ของฉันฉันสังเกตเห็นว่ากลุ่มอื่นที่มีแพ็กเก็ตโหลดใกล้เคียงกันซึ่งเราจะเรียกกลุ่ม 2 นั้นไม่มีปัญหาเลย :

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

คำถาม:

ทำไม group2 ถึงทำงานแบบนี้โดยไม่ต้องทำการปรับแต่งบัฟเฟอร์ของ RX ring หรือnet.core.wmem_default/ net.core.wmem_max? ฉันจะต้องทำให้แหวนบัฟเฟอร์เป็นปกติไม่ว่าจะเกิดอะไรขึ้น แต่ฉันอยากจะเข้าใจสิ่งที่เกิดขึ้นที่นี่ก่อนที่ฉันจะเริ่มเล่นด้วยค่า wmem ใน / proc

สิ่งเดียวที่ฉันคิดได้ก็คือว่าคิวกำลังว่างเปล่าเร็วกว่าโดยแอปพลิเคชัน แต่การปรับแต่งสแต็คเครือข่ายไม่ใช่สิ่งที่ฉันมีประสบการณ์ตรงกับและฉันต้องการได้รับความคิดเห็นที่สอง (ดวงตาของฉันจ้องมองไปที่ชื่อตัวนับ ethtool ฉันจะไม่ปฏิเสธ)

ฉันได้กำจัดสิ่งต่าง ๆ ดังต่อไปนี้ พิสูจน์ตามหลังตัวแบ่ง

  • โครงร่างบัฟเฟอร์วงแหวนเหมือนกัน (เซิร์ฟเวอร์ตัวแรกของ group1 และ group2 กำหนดค่าเหมือนกันเซิร์ฟเวอร์ตัวที่สองของ group1 และ group2 กำหนดค่าไว้เหมือนกัน)
  • โครงร่างเกตเวย์เริ่มต้นเหมือนกัน
  • การ์ดเครือข่ายเหมือนกัน (Broadcom BCM5708)
  • เวอร์ชั่นของเฟิร์มแวร์ที่รายงานโดย ethtool เหมือนกัน (bc 4.0.3 ipms 1.6.0)
  • sysctl -aเอาต์พุตจับคู่ระหว่างเซิร์ฟเวอร์แรกของทั้งสองกลุ่มและเซิร์ฟเวอร์ที่สองของทั้งสองกลุ่ม (ไม่รวมส่วนของเคอร์เนลและ fs)
  • จำนวนเซิร์ฟเวอร์ทั้งหมดในกลุ่ม 1 และกลุ่ม 2 จะเท่ากัน (10)

สำหรับเหตุผลในการรักษาความลับฉันไม่สามารถแสดง raw named.conf หรือตัวกรอง grep ที่ฉันใช้เพื่อแยกข้อมูล คุณจะต้องใช้คำพูดของฉันว่าพารามิเตอร์การกำหนดค่าต่อไปนี้จะคงที่ระหว่างเซิร์ฟเวอร์ทั้งสี่:

    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;

ด้านล่างเป็นข้อมูลระบบจำนวนมาก "hosthash" นั้นมีไว้เพื่อแสดงให้เห็นว่าการวนซ้ำของลูปแต่ละครั้งในความเป็นจริงการกดปุ่มเซิร์ฟเวอร์ที่แตกต่างกันโดยไม่เปิดเผยชื่อโฮสต์ที่แท้จริง

แฮชโฮสต์:

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

เอาท์พุท:

____________________
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 -

1
มีความสัมพันธ์ที่ยาวนานและน่ารังเกียจระหว่าง Broadcom NIC และ RHEL5 ส่วนใหญ่ของพวกเขาได้รับการแก้ไขไปที่ RHEL5.5 ฉันจะดูว่ามีข้อบกพร่องใด ๆ ใน kernel-2.6.18-308 series หรือไม่ btw ฉันคิดว่านี่เป็นปัญหา NIC เนื่องจากแพ็กเก็ตหายไปในระดับเฟิร์มแวร์ ดูที่หมายเลขของเฟิร์มแวร์ทิ้ง
Soham Chakraborty

1
ฉันแค่อยากจะบอกว่าเป็นคำถามที่เขียนได้ดีที่สุดที่ฉันเห็นใน SF ในเดือน งานที่ยอดเยี่ยม

คำตอบ:


3

สงสัยว่ากล่องนั้นเป็นของ Dell หรือไม่? มีปัญหาที่รู้จักกันดีกับไดรเวอร์ bnx2i และชิปเซ็ตที่จัดส่งโดย Dell ผลที่ได้คือการสุ่มแพ็คเก็ตที่ลดลงภายใต้ภาระเครือข่ายหนัก ดูเหมือนว่ามีเหตุผลที่บัฟเฟอร์แหวนปรับขึ้นสามารถเรียกใช้หากเป็นกรณีนี้

ฉันเชื่อว่า Dell ขอเสนอไดรเวอร์รุ่นที่เป็นของตัวเอง การแก้ไขอื่น ๆ คือการทำสิ่งนี้ใน modprobe.conf:

ตัวเลือก bnx2i disable_msi = 1

ไม่สามารถเจ็บปวดได้ แต่อย่างใด และ x2 ที่ kce พูด หนึ่งในคำถามที่เขียนดีที่สุดที่ฉันเคยเห็นที่นี่


อ๊ะ! คุณมีตาที่ดีฉันไม่ได้พูดถึงแชสซีฮาร์ดแวร์หรือmodprobe.confรายละเอียด นี่คือเซิร์ฟเวอร์ IBM System x3550 ทั้งหมดและฉันได้อัปเดตคำถามเพื่อให้สะท้อน ฉันหวังว่าฉันจะพบความแตกต่างใน modprobe optionsตามคำแนะนำของคุณ แต่ไม่มีโชค ไม่มีเลยเพียงแค่นามแฝงสำหรับ eth0 และ eth1 ถึง bnx2 ฉันตรวจสอบ/etc/modules.d/เช่นกัน
Andrew B

ฉันคุ้นเคยกับปัญหา bnx2 / Dell มากขึ้น (จากประสบการณ์ที่เจ็บปวดที่สุด) แต่ตามที่มีคนแนะนำข้างต้นปัญหาอาจไม่เฉพาะเจาะจงกับ Dell มันอาจจะคุ้มค่ากับเวลาของคุณในการลองปิด msi สำหรับไดรเวอร์ ความจริงที่ว่าแพ็กเก็ตที่ถูกดร็อปอยู่บนอินเทอร์เฟซที่มีบัฟเฟอร์ขนาดใหญ่ฟังดูคล้ายกับข้อบกพร่องที่ฉันอธิบายมันน่าสนใจ
J Adams

การปรึกษากับเพื่อนร่วมงานมีแนวโน้มที่ทำให้เกิดเสียงฉันจะแจ้งให้คุณทราบ
Andrew B

ปิดการใช้งาน msi, ยกเลิกการโหลดและโหลดโมดูลใหม่และทดสอบใหม่, modinfo bnx2 ควรแสดง: parm: disable_msi: ปิดการใช้งานข้อความสัญญาณขัดจังหวะ (MSI) (int)
dmourati

Google ด่วนแนะนำว่าปัญหา bnx2 ไม่ได้ จำกัด อยู่ที่ Dell และฉันเห็นว่า IBM ยังมีไดรเวอร์สำหรับผู้ผลิตให้ดาวน์โหลด การปฏิบัติตามคำแนะนำของ dmourati จะเป็นวิธีที่รวดเร็วในการกำจัดไดรเวอร์ซึ่งเป็นสาเหตุของปัญหา
J Adams

1

แม้ว่าคุณจะแน่ใจว่าคุณมีรายชื่อ VIP load balancer สำหรับเซิร์ฟเวอร์ของคุณแล้วก็ตามให้รันการดักจับแพ็กเก็ตต่อไป เพียงเพราะเครื่องของคุณไม่ตอบสนองต่อ ARP สำหรับที่อยู่ IP ไม่ได้หมายความว่าไม่สามารถส่งแพ็กเก็ตปลอมได้ ตรวจสอบให้แน่ใจว่าปริมาณข้อมูลที่ส่งไปยังที่อยู่ MAC ของคุณตรงกันกับที่อยู่ IP ที่กำหนดค่า

ฉันซาบซึ้งเวลาที่ผู้คนถามคำถามนี้ แต่ความขยันของฉันเองก็ขาดไป ในอดีตฉันต้องสร้างตัวกรอง PCAP เช่นนี้

tcpdump -i eth0 -n 'ether dst aa:bb:cc:dd:ee:ff and not (dst host 1.2.3.4 or dst host 5.6.7.8 or...)'

ที่ไหน:

aa:bb:cc:dd:ee:ff = HW addr of eth0
1.2.3.4, 5.6.7.8  = list of destination addresses that traffic is expected on

มีวีไอพีโหลดบาลานเซอร์จำนวนหนึ่งที่ไม่ได้มอบให้กับฉัน (ฉันไม่ได้ควบคุม LB) และพวกเขากำลังส่งผ่านทราฟฟิกบนพอร์ต TCP 53 ในวิธีที่จะส่งผลให้ RX ทิ้งไป ปริมาณการรับส่งข้อมูลใน IP ดั้งเดิมเหล่านี้ต่ำมากจนไม่น่าจะสังเกตได้โดยผู้ดูแลระบบที่จ้องมองการรับส่งข้อมูลบนสาย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.