Kemungkinan penyebab NTPD sekarat tiba-tiba dan solusinya

9

Pada aplikasi web yang menggunakan s3 untuk penyimpanan dokumen fisik, kami mengalami masalah dengan NTP terus menerus sekarat. Ini tampaknya terjadi kira-kira sekali atau dua kali sehari. Ada sangat sedikit informasi yang diberikan ketika ini terjadi, selain itu file PID ada tetapi layanan mati ketika saya memeriksa statusnya.

Adakah yang bisa menyarankan kemungkinan penyebab NTPD sekarat? Saya berasumsi bahwa mungkin jam melayang menyebabkannya mati, tetapi saya tidak yakin apa yang menyebabkannya. Ada lebih dari cukup memori dan ruang disk yang tersedia.

Terakhir kali layanan meninggal, ini adalah output:

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.
pengguna275940
sumber
OS dan versi apa? Apakah ada penutup berjalan? Berapa banyak ntp-server yang dikonfigurasi? Opsi ntpd apa yang aktif?
Nils
Anda dapat mencoba menghapus file ntp.drift Anda, nilainya mungkin terlalu tinggi dan menyebabkan kemiringan
Rqomey

Jawaban:

6

Saya akan mengatakan tidak ada metode 1 menit untuk menemukan alasan yang tepat.

Kami memiliki masalah serupa sebelumnya di lingkungan ESXi kami. Untuk mempersingkat cerita, kami menemukan jam host ESXi melayang banyak dan VM tamu sedang menyinkronkan waktu dari kedua host ESXi dan server NTP hulu. Hal ini menyebabkan NTPd pada VM bingung sehingga mati cukup sering.

Kami juga menemukan dalam beberapa kasus yang jarang terjadi, hilangnya paket acak juga menyebabkan NTPd berhenti karena waktu bolak-balik antara server Anda dan server NTPd hulu digunakan untuk menghitung waktu penyimpangan.

Dalam dua kasus di atas, jika NTPd melihat pergeseran waktu besar-besaran, misalnya lebih dari 1000, itu berhenti secara default. Opsi -g akan membantu sedikit.

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

Anda dapat melihat log sistem , yang seharusnya memiliki beberapa kata dapat memberi Anda petunjuk. Anda juga bisa memonitor output "ntpq -p" untuk memiliki gambaran kasar bagaimana offset berkembang.

Enzo Wang
sumber
Saat Anda menjalankan ntpd di VM, Anda tidak harus juga menyinkronkan waktu dengan tuan rumah, dan Anda tidak harus memasukkan jam lokal sebagai referensi.
Paul Gear
3

Pesan log dengan jelas menunjukkan bahwa jam melayang adalah alasan untuk keluar. Solusi yang memungkinkan:

  • Mulai ntpd dengan flag -g; Namun, ini tidak akan memperbaiki akar penyebabnya, yaitu kemiringan jam.
  • Jalankan ntpdate sebelum memulai ntpd; mungkin peringatan yang sama.
  • Tambahkan lebih banyak sumber waktu; NTP membutuhkan 4-6 sumber untuk menjaga akurasi yang baik. Cara sederhana untuk melakukan ini adalah memasukkan referensi berulang ke [0-3] .YOURREGION.pool.ntp.org di konfigurasi Anda, mis.

    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
    
Paul Gear
sumber
1

Pilihan lain yang bisa Anda coba adalah chrony. Dalam pengujian kami, kinerjanya lebih stabil daripada ntpd dan menangani waktu miring yang dialami dalam lingkungan virtual dengan lebih baik.

http://chrony.tuxfamily.org/

Jokajak
sumber