Apa yang bisa menyebabkan jam melompat 5 menit?

8

Saya memiliki kotak (fisik) menjalankan Ubuntu dipreteli; setiap sekarang dan kemudian (6 kali dalam 3 bulan), jam melompat mundur tepat 300 detik (+ - 0,01 detik; selalu tepat 300 detik). Ini terjadi dari satu menit ke menit berikutnya (saya memiliki mesin eksternal yang memungutnya sekali per menit).

Kotak ini menjalankan 2.6.26-generik (kernel terkompilasi khusus), Ubuntu 9.04 (saya tahu, saya mencoba untuk memperbaruinya, tetapi semi-embedded). Tidak ada dalam log yang menunjukkan apa yang terjadi, dan saya memiliki banyak pilihan server ntp pool.ntp.org, yang memperbaiki masalah setelah beberapa saat.

Adakah yang tahu apa yang menyebabkan ini?

Tambahan 1:

Saya juga memiliki sejumlah kotak lain yang menjalankan kernel yang sama (identik biner), dan variasi kecil dari perangkat lunak yang sama, yang tidak memiliki masalah ini. Saya juga telah menukar perangkat keras.

Tambahan 2 (ringkasan komentar pribadi saya):

  • Saya tahu 9.04 sudah usang, saya setuju itu harus diperbarui, dan keputusan ini di luar kendali saya. Karena manajemen.
  • Saya telah mencoba sejumlah besar server ntp, dan sejumlah kecil. Itu masih terjadi dalam kedua kasus; jika saya memiliki sejumlah besar server ntp, maka itu memperbaiki dirinya lebih cepat.
  • Saya telah menukar perangkat keras
  • Saya menggunakan kernel / sistem operasi yang sama di kotak lain (dengan perangkat keras yang sama), yang tidak menunjukkan masalah.
  • Mem-boot ulang tidak membantu. (masalah ini telah berlangsung sekitar 6 bulan)
  • Waktu aktif sekitar 3 bulan. Kotaknya "selalu menyala", menjalankan PBX (tanda bintang).
  • Saat ini, hwclock sama persis dengan jam perangkat lunak - 0,000000 detik
  • Saya belum dapat menemukan pekerjaan cron yang membaca jam perangkat keras.
  • Tidak ada pola yang berhubungan dengan beban (meskipun bebannya cukup rendah).
  • Itu terjadi pada siang dan malam hari.
  • Itu tidak terjadi secara berkala. Dari yang dalam 3 bulan terakhir, setengahnya terjadi dalam 9 hari terakhir.
  • Ini bukan "melayang" - 99% dari waktu, itu dalam sepersekian detik, kemudian dari satu menit ke menit berikutnya, itu melompat PERSIS 300 detik, mundur. Jadi, satu menit mungkin mengatakan itu 3:07:03, mencocokkan komputer saya yang lain dalam 1 mikrodetik, 60 detik kemudian, dikatakan 3:04:03.
  • Saya tidak dapat menemukan apa pun di log.
AMADANON Inc.
sumber
1
Ubuntu 9,04 sudah tidak ada batasnya, dan jika Anda menjalankan kernel khusus sebagai tambahan, dukungan akan terbatas. Sistem semi-embedded menambahkan lapisan kompleksitas lainnya.
Panther
1
hei, jika itu adalah pertanyaan yang mudah, saya akan memperbaikinya sekarang :)
AMADANON Inc.
Coba kurangi jumlah server ntp Anda menjadi 3, gunakan yang secara geografis dekat dengan Anda dengan konektivitas yang baik.
Panther
Ide bagus - Saya sudah mencobanya. Satu-satunya perbedaan adalah bahwa, dengan lebih sedikit sumber ntp, ntpd melakukan lebih sedikit permintaan, dan butuh waktu lebih lama untuk kembali normal.
AMADANON Inc.
Yah itu bukan ntp, yang meninggalkan kernel atau perangkat keras khusus Anda dengan proses eliminasi.
Panther

Jawaban:

1

Ini terdengar seperti Real Time Clock (RTC) yang gagal. Jika ini adalah perangkat keras cadangan, Anda dapat mengonfirmasi masalah dengan menjalankan OS yang berbeda, seperti mem-boot CD linux langsung atau PXE, dan melihat apakah Anda dapat mereplikasi kegagalan. Jika kemiringan waktu yang sama persis terjadi pada OS lain, maka Anda telah mengkonfirmasi bahwa masalahnya adalah kegagalan perangkat keras.

Dengan asumsi itu adalah RTC, Anda dapat mencoba solusi berikut dalam urutan keparahan.

  • Ganti baterai CMOS. Anda dapat mencoba mengkonfirmasi apakah baterai gagal dengan menguji tegangan adonan lama Anda dengan multimeter.
  • Ubah RTC. Jika Anda beruntung dan memiliki motherboard yang bagus, mungkin memiliki dua RTC. Jam presisi tinggi yang digunakan secara default, dan RTC standar. Periksa pengaturan BIOS / EFI dan lihat apakah Anda dapat mengubah ke RTC alternatif untuk menghindari penggunaan yang salah.
  • Coba ganti RTC. Tergantung pada usia motherboard Anda, RTC Anda mungkin adalah kaleng logam atau chip di papan tulis. Anda dapat mencoba mengganti komponen ini sendiri jika Anda memiliki beberapa keterampilan elektronik.
  • Ganti motherboard, karena RTC atau beberapa komponen listrik atau mengarah yang antarmuka dengan RTC gagal.
Michael Yasumoto
sumber
1

Anda dapat menjalankan skrip pada kotak yang melacak proses yang sedang berjalan dan pada saat yang sama memonitor jam. Jika jam melompat mundur tiba-tiba, itu mencatat daftar proses yang aktif pada saat itu. Mungkin itu memberi petunjuk proses mana yang mengubah jam.

Tentu saja, ini mengasumsikan bahwa Anda memiliki masalah perangkat lunak. Anda tidak akan menemukan apa pun dengan cara ini jika perangkat keras Anda rusak.

/bin/bash

oldTime=$(date +%s)
oldPsOutput=$(ps faux)
while sleep 1
do
  currentTime=$(date +%s)
  currentPsOutput=$(ps faux)
  if [ "$currentTime" -lt "$oldTime" ]  # clock change detected?
  then
    echo '========='
    echo "$currentTime < $oldTime"
    echo "$oldPsOutput"
    echo ':::::::::'
    echo "$currentPsOutput"
  fi >> /tmp/clockChangeDetector.log
  oldPsOutput=$currentPsOutput
  oldTime=$currentTime
done
Alfe
sumber
0

Jawaban Michael Yasumoto tampaknya mencakup semua pangkalan - Saya setuju bahwa Anda mungkin sedang mencari perangkat keras - tetapi inilah ide praktis: gunakan mesin yang dapat diandalkan dengan konektivitas internal yang sangat baik yang memiliki beberapa siklus cadangan untuk menjalankan Server NTP, dan kemudian lakukan " apa pun yang diperlukan " untuk membuat klien NTP yang berjalan pada kotak PBX yang tertanam spam server NTP lokal ini untuk permintaan waktu sesering mungkin (misalnya, setiap 30 detik).

Kemudian, ketika kotak itu akhirnya ditingkatkan, sepatutnya disingkirkan dan mencari tahu apa yang salah dengan itu Di Beberapa Titik (TM). : P

i336_
sumber