Mengapa server EC2 saya libur ~ 10 detik setiap hari?

12

Saya memiliki apa yang saya yakini sebagai file sistem, /etc/cron.daily/ntpupdateyang berjalan
ntpdate ntp.ubuntu.comsetiap hari untuk menyinkronkan dengan waktu jaringan. Setiap hari ia menghasilkan keluaran yang sangat mirip dengan ini:

/etc/cron.daily/ntpupdate:
16 Jan 06:30:42 ntpdate[21446]:
step time server 91.189.94.4 offset -12.646804 sec

Saya tidak yakin apa 91.189.94.4artinya tapi saya cukup yakin -12.646804 secberarti server saya mati sekitar 12 detik. Tapi saya tidak tahu mengapa jumlah ini sama dengan jumlah yang sama setiap hari. Ini adalah instance Amazon EC2 yang menjalankan Ubuntu.

Saya hanya bisa menebak bahwa kehilangan / mendapatkan 12 detik per hari, atau sesuatu yang lain sedang menyinkronkan waktu dengan jam lain yang mati oleh 12 detik dan kemudian saya menyinkronkannya kembali.

Apa yang harus saya lakukan untuk mencoba dan melacak ini lebih jauh? Saya tidak melihat pekerjaan cron lain di /etc/cron.*direktori atau di pekerjaan cron pengguna ...

MEMPERBARUI

Saya pikir saya akan membagikan bahwa saya mulai berlari setiap jam untuk melihat apakah akan ada lompatan besar pada jam tertentu. Inilah yang dimaksud dengan output per jam:

16 Jan 15:17:04 ntpdate[8346]:
adjust time server 91.189.94.4 offset -0.464418 sec

Jadi ternyata setiap jam jamnya mati sekitar setengah detik, jadi masuk akal bahwa setiap hari (24 jam) jamnya akan mati sekitar 12 detik. Kira jamnya hanya berlari kencang! Terima kasih!

cwd
sumber
91.189.94.4 adalah alamat IP ntp.ubuntu.com
Michael Mrozek
ikuti tautan ini. Masalah Anda akan teratasi. Ini membantu menyelesaikan masalah yang sama docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html

Jawaban:

13

Ada sejumlah faktor yang mungkin membuat jam perangkat lunak berjalan lambat atau cepat. Jam pada server virtual sangat rentan terhadap seluruh kelas masalah ini. 12 detik sehari sangat buruk sampai Anda menemukan kotak virtual dengan jam yang berjalan pada kecepatan 180-200%! Jam pada laptop yang ditangguhkan dapat mengalami masalah waktu juga.

Anda harus mempertimbangkan ntupdateuntuk menolak ntpd. Nama paket ada ntpdi Debian (dan mungkin juga Ubuntu). Daemon NTP membuat waktu Anda dalam sinkronisasi jauh lebih proaktif daripada pekerjaan cron, menyinkronkan dengan satu atau lebih server NTP lainnya dan menjaga jam Anda jauh lebih akurat. Ini implementasi lain dari penggunaan protokol yang sama ntpdate, kecuali ntpdmemonitor waktu secara terus menerus.

Jika Anda tidak ingin overhead (sangat kecil) ntpd, Anda dapat mempertimbangkan untuk berlari ntpdatesekali dalam satu jam. Dengan asumsi Anda mendapat diskon 0,5 setiap jam, itu sudah cukup.

Alexios
sumber
3
Masalah mesin virtual juga dapat sebagian besar diselesaikan dengan menjalankan kernel tanpa centang (CONFIG_NO_HZ). Tidak yakin apakah ini mungkin dengan kernel ubuntu, atau jika Anda harus membuatnya sendiri.
Patrick
1
Saya baru saja memeriksa konfigurasi kernel pada instalasi Ubuntu 11 (3.0.0-14-generik), dan sudah pasti CONFIG_NO_HZdiaktifkan.
Alexios
0

Menjawab setengah dari pertanyaan Anda, tentang mengapa hal ini terjadi: Jam perangkat keras komputer sangat tidak akurat, jadi meskipun penyimpangan 12 detik dalam sehari adalah tidak biasa, itu tidak terlalu aneh.

(Ini mungkin karena prevalensi penggunaan waktu jaringan, sehingga penyimpangan bahkan 12 detik sehari adalah gangguan kecil dibandingkan dengan apa yang akan ada di arloji - dan dengan demikian perusahaan perangkat keras dapat menggunakan chip jam murah. Secara fisik, apa yang terjadi mungkin karena osilator di chip jam Anda tidak dikalibrasi dengan benar, sehingga osilator berjalan agak-tapi-andal lambat.)

Brooks Moses
sumber
-1

Saya menduga bahwa ntp tidak memperbarui waktu server Anda karena perbedaannya terlalu kecil. Saya memiliki masalah yang sama, saya melihat penundaan yang sama setiap hari, sampai saya menemukan bahwa sedikit perbedaan ntp tidak akan diperbarui hingga ambang tertentu hadir.

Periksa konfigurasi Anda untuk ambang minimum untuk sinkronisasi.

Patkos Csaba
sumber
3
Ini tidak benar. Sebaliknya, NTP berupaya mengurangi perbedaan sebanyak mungkin. Ada ambang di arah lain: NTP tidak akan memperbarui jam jika perbedaannya terlalu besar (itu mencurigai kesalahan konfigurasi, misalnya zona waktu yang salah).
Gilles 'SANGAT berhenti menjadi jahat'