สาเหตุที่เป็นไปได้ของ NTPD กำลังจะตายโดยไม่คาดคิดและแนวทางแก้ไข


9

ในเว็บแอปพลิเคชันที่ใช้ s3 สำหรับการจัดเก็บเอกสารทางกายภาพเรากำลังประสบปัญหากับ NTP ที่กำลังจะตายอย่างต่อเนื่อง ดูเหมือนว่าจะเกิดขึ้นประมาณหนึ่งหรือสองครั้งต่อวัน มีข้อมูลน้อยมากเมื่อเกิดเหตุการณ์นี้นอกจากไฟล์ PID ที่มีอยู่ แต่บริการจะตายเมื่อฉันตรวจสอบสถานะ

ใครช่วยแนะนำสาเหตุที่เป็นไปได้ของ NTPD ที่กำลังจะตาย? ฉันสมมติว่าการเลื่อนนาฬิกาอาจทำให้มันตาย แต่ฉันไม่แน่ใจว่าจะทำให้เกิดอะไรขึ้น มีหน่วยความจำเกินพอและมีพื้นที่ว่างในดิสก์

ครั้งสุดท้ายที่บริการเสียชีวิตนี่คือผลลัพธ์:

Sep  6 06:15:25 vm02 rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="988" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
Sep  6 06:17:06 vm02 ntpd[10803]: 0.0.0.0 0618 08 no_sys_peer
Sep  6 08:01:10 vm02 ntpd[10803]: 0.0.0.0 0617 07 panic_stop -28101 s; set clock manually within 1000 s.

ระบบปฏิบัติการและเวอร์ชั่นใด มีฝาซ่อนหรือไม่? มีการกำหนดค่าเซิร์ฟเวอร์ ntp จำนวนเท่าใด ตัวเลือก ntpd คือ aktive?
นิลส์

คุณสามารถลองลบไฟล์ ntp.drift ของคุณมันอาจมีค่าสูงเกินไปและทำให้เอียง
Rqomey

คำตอบ:


6

ฉันจะบอกว่าไม่มีวิธี 1 นาทีในการหาเหตุผลที่แน่นอน

เรามีปัญหาที่คล้ายกันมาก่อนในสภาพแวดล้อม ESXi ของเรา เพื่อตัดเรื่องสั้นเราพบว่านาฬิกาของโฮสต์ ESXi ลอยไปมากและ VMs ของแขกก็ถูกซิงค์เวลาจากทั้งโฮสต์ ESXi และเซิร์ฟเวอร์ NTP ต้นน้ำ สิ่งนี้ทำให้ NTPd บน VM เกิดความสับสนจึงเสียชีวิตบ่อยครั้ง

นอกจากนี้เรายังพบว่าในบางกรณีการสูญเสียแพ็กเก็ตแบบสุ่มยังทำให้ NTPd เลิกเนื่องจากเวลารอบการเดินทางระหว่างเซิร์ฟเวอร์ของคุณกับเซิร์ฟเวอร์ NTPd ต้นน้ำใช้ในการคำนวณเวลาดริฟท์

ในสองกรณีข้างต้นหาก NTPd เห็นการดริฟท์เป็นเวลานานตัวอย่างเช่นมากกว่า 1,000 วินาทีการเลิกทำจะเริ่มต้นโดยค่าเริ่มต้น ตัวเลือก -g จะช่วยเล็กน้อย

   -g      Normally,  ntpd  exits  with  a  message to the system log if the offset exceeds the panic threshold,
           which is 1000 s by default. This option allows the time to be set to any value  without  restriction;
           however,  this  can  happen only once. If the threshold is exceeded after that, ntpd will exit with a
           message to the system log. This option can be used with the -q and -x options. See the tinker command
           for other options.

คุณสามารถดูบันทึกของระบบซึ่งควรมีบางคำที่อาจให้คำแนะนำแก่คุณ คุณสามารถตรวจสอบเอาต์พุต "ntpq -p"เพื่อให้เข้าใจคร่าวๆว่าการพัฒนาออฟเซ็ตจะเป็นอย่างไร


เมื่อคุณใช้ ntpd บน VMs คุณไม่ควรซิงค์เวลากับโฮสต์และคุณไม่ควรรวมเวลาท้องถิ่นเป็นข้อมูลอ้างอิง
พอลเกียร์

3

ข้อความบันทึกอย่างชัดเจนบ่งชี้ว่าการเลื่อนเวลาของนาฬิกาเป็นสาเหตุของการออก การแก้ปัญหาที่เป็นไปได้:

  • เริ่ม ntpd ด้วยแฟล็ก -g; อย่างไรก็ตามสิ่งนี้จะไม่แก้ไขสาเหตุของรากซึ่งเป็นนาฬิกาที่เอียง
  • รัน ntpdate ก่อนเริ่ม ntpd; อาจเป็นข้อแม้เดียวกัน
  • เพิ่มแหล่งเวลาเพิ่มเติม NTP ต้องการแหล่ง 4-6 แหล่งเพื่อรักษาความแม่นยำที่ดี วิธีง่ายๆในการทำเช่นนี้คือการรวมการอ้างอิงซ้ำไปที่ [0-3] .YOURREGION.pool.ntp.org ใน config ของคุณเช่น

    server 0.au.pool.ntp.org iburst
    server 1.au.pool.ntp.org iburst
    server 2.au.pool.ntp.org iburst
    server 3.au.pool.ntp.org iburst
    
    server 0.au.pool.ntp.org iburst
    server 1.au.pool.ntp.org iburst
    server 2.au.pool.ntp.org iburst
    server 3.au.pool.ntp.org iburst
    

1

ตัวเลือกอื่นที่คุณสามารถลองได้ก็คือ chrony ในการทดสอบของเรามันทำงานได้เสถียรกว่า ntpd และจัดการกับเวลาที่เอียงในสภาพแวดล้อมเสมือนจริงที่ดีขึ้น

http://chrony.tuxfamily.org/

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