eth0 NIC Link เป็นข้อความซ้ำในเคอร์เนล


14

ฉันสังเกตเห็นตั้งแต่ไม่กี่วันที่ผ่านมาว่ามีข้อความซ้ำเกิดขึ้นซ้ำ ๆ กันและฉันสามารถพูดได้ว่าไม่มีอะไรเปลี่ยนแปลงโดยเจตนา (ติดตั้ง / ถอนการติดตั้ง) ในช่วงเวลานั้น

นี่คือตัวอย่างของข้อความ/var/log/kern.log :

Mar 30 06:32:45 aurora kernel: [566322.867110] e1000e: eth0 NIC Link is Down

Mar 30 06:32:47 aurora kernel: [566325.313634] e1000e: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx

Mar 30 06:32:59 aurora kernel: [566337.632930] e1000e: eth0 NIC Link is Down

Mar 30 06:33:18 aurora kernel: [566356.543664] e1000e: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None

Mar 30 11:05:47 aurora kernel: [582689.779752] e1000e: eth0 NIC Link is Down

Mar 30 11:05:50 aurora kernel: [582692.174337] e1000e: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx

จากไฟล์บันทึกที่สมบูรณ์ - เมื่อนำข้อความบันทึกทั้งหมดนี้มานับ - ฉันสามารถสรุป:

  • eth0 ล้มเหลวทุกสองสามชั่วโมง
  • eth0 ล้มเหลวในกรณีแรกสำหรับสองและวินาทีสำหรับ 19 วินาที

มันเป็นเซิร์ฟเวอร์ที่ใช้งานจริงที่ฉันกำลังพูดถึงอยู่ที่นี่

จะแก้ปัญหานี้ได้อย่างไรเนื่องจากเมลเซิร์ฟเวอร์อยู่ในช่วงการผลิตและความล้มเหลวของเครือข่ายที่มีระยะเวลา 19 วินาทีที่ฉันไม่สามารถทนได้?


1
คุณเคยตรวจสอบอะไรบ้าง ต่อสายเคเบิลอย่างถูกต้องและอยู่ในสภาพที่ไม่เป็นอันตรายหรือไม่? สวิตช์ที่ปลายอีกด้านหนึ่งสังเกตการเชื่อมโยงลงหรือไม่ น่าสังเกตว่าลิงก์ที่ตรวจพบนั้นแตกต่างกันในแต่ละช่วงเวลา (การควบคุมการไหลแตกต่างกันในบันทึกของคุณ) บางทีการจัดการโดยอัตโนมัติอาจล้มเหลว ปัญหาหายไปหรือไม่ถ้าคุณบังคับ 1000Mbps FD Rx / Tx
Håkan Lindqvist

@ HåkanLindqvistฉันไม่มีตัวเลือกในการตรวจสอบสายเคเบิลเนื่องจากเซิร์ฟเวอร์ไม่ได้อยู่ใกล้ฉัน นั่นคือสิ่งที่ฉันควรขอตรวจสอบสิ่งที่เซิร์ฟเวอร์ฟาร์มเทคโนโลยี? ฉันจะบังคับ 1000Mbps FD Rx / Tx ได้อย่างไร และเกี่ยวกับการควบคุมการไหลที่แตกต่างกันในเวลาที่ต่างกันเป็นปัญหานี้หรือไม่?
MilošĐakonović

ลิงก์ "ประเภท" ที่เปลี่ยนแปลงตลอดเวลาแนะนำให้ฉันรู้ว่ามีบางอย่างไม่ถูกต้อง แต่การค้นหาสาเหตุที่แท้จริงนั้นแน่นอนว่าเป็นคำถามที่แยกจากกันโดยสิ้นเชิง การสอบถามพนักงานเทคโนโลยีอาจเป็นความคิดที่ดี
Håkan Lindqvist

1
คุณสามารถใช้ ethtool หรือ mii-tool เพื่อตรวจสอบสถานะการต่อรองอัตโนมัติและอื่น ๆ ที่ส่วนท้ายของเซิร์ฟเวอร์ คุณต้องตรวจสอบให้แน่ใจว่าสวิตช์เซิร์ฟเวอร์ของคุณได้รับการตั้งค่าให้ตรงกัน ดูเหมือนว่าปัญหาฮาร์ดแวร์ - อาจเป็นอะแดปเตอร์เซิร์ฟเวอร์เคเบิลหรือสวิตช์ ฉันขอแนะนำให้ดูที่สถานะของสวิตช์เพื่อดูว่ามีอะไรเกิดขึ้น
Paul Haldane

คำตอบ:


10
  1. ตรวจสอบข้อผิดพลาดบนเส้นลวดดูที่ฟิลด์ "ข้อผิดพลาด" ในผลลัพธ์ของ ifconfigในการส่งออกของ หากไม่ใช่ศูนย์แสดงว่ามีปัญหากับฮาร์ดแวร์ (สายเคเบิลการ์ด NIC หรือฮับ / สวิตช์) สายอีเธอร์เน็ตที่ไม่น่าเชื่อถือจะให้ข้อผิดพลาดในด้านนี้เช่นกัน
  2. เปลี่ยนสายเคเบิลอีเทอร์เน็ตโดยไม่คำนึงถึงขั้นตอนที่ 1 นี่คือรวดเร็วราคาถูกและง่ายและควรทำทุกครั้งที่ลิงก์ของคุณขึ้นและลงตามช่วงเวลาแบบสุ่ม
  3. ใช้ ethtoolและตรวจสอบให้แน่ใจว่าการตั้งค่าเครือข่าย (ดูเพล็กซ์ ฯลฯ ) ตรงกับการตั้งค่าบนสวิตช์ หากคุณไม่ใช่ผู้ดูแลระบบของสวิตช์ให้ขอให้ผู้ดูแลระบบเครือข่ายให้การตั้งค่าแก่คุณ
  4. หากสวิตช์นั้นเปิดใช้งานการควบคุมการไหลให้แน่ใจว่าสวิตช์นั้นเปิดใช้งานบนกล่อง Linux ของคุณ มิฉะนั้นให้ปิดการใช้งาน

คุณควรประเมินว่าคุณต้องการการควบคุมการไหลหรือไม่ จากข้อมูลของ HP มีความจำเป็นสำหรับแอปพลิเคชั่นที่มีประสิทธิภาพสูงเท่านั้น: ดูบทความของ HP เกี่ยวกับการใช้ Flow Control


1
มันเป็นข้อผิดพลาดของสายไฟ สิ่งที่เทคโนโลยีเซิร์ฟเวอร์ฟาร์มทำงานได้หลังจากที่ฉันรายงานข้อผิดพลาด
MilošĐakonović

1
'ifconfig' แสดงข้อผิดพลาดหรือไม่
Michael Martinez

1

นี่คือการแก้ไขของฉัน ปัญหานี้เกิดขึ้นกับฮาร์ดแวร์เฉพาะ (บนเครื่องหนึ่งเครื่องเท่านั้น 1 จาก 2 พอร์ตบน NIC) พร้อมไดรเวอร์ e1000e เสมอตั้งแต่เคอร์เนล 3.9 หรือมากกว่านั้น ไฟล์นี้มีไว้สำหรับ centos7 ไปในและจะต้องมีการเปิดใช้งานด้วย/etc/init.d/ chkconfig --add <name>ชื่อของอินเทอร์เฟซถูกฮาร์ดโค้ด ... อย่าลืมตั้งค่า

#!/bin/sh

### BEGIN INIT INFO
# Provides:          pm-e1000e-fix
# Required-Start:    $network
# Required-Stop:     $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 6
# Short-Description: workaround for e1000e issue
# Description:       e1000e fix
### END INIT INFO

################################################################################
# Give Usage Information                                                       #
################################################################################
usage() {
    echo "Usage: $0 start|restart" >&2
    exit 1
}

################################################################################
# E X E C U T I O N    B E G I N S   H E R E                                   #
################################################################################
command="$1"
shift

interface="eth0"

case "$command" in
    start)
        ethtool -K "$interface" gso off gro off tso off
        ;;
    restart)
        ethtool -K "$interface" gso off gro off tso off
        ;;
    *)
        usage
        ;;
esac
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.