उबंटू की घड़ी धीमी या तेज क्यों हो रही है?


16

उबंटू की घड़ी लगभग आधे घंटे से बंद है:

उबंटू का समय और तारीख बनाम आधिकारिक अमेरिकी समय

मैं भी इस समस्या का निवारण कहाँ से शुरू करूँ?

यह कथित तौर पर "इंटरनेट से स्वचालित रूप से" सेट किया जा रहा है। मैं कैसे सत्यापित कर सकता हूं कि "इंटरनेट" जानता है कि यह किस समय है?

विवरण

उबंटू के पास इंटरनेट के साथ संचार करने के लिए बहुत समय है:

$ date; uptime
Fri May 18 05:56:00 PDT 2012
 05:56:00 up 12 days, 10:48,  2 users,  load average: 0.61, 0.96, 1.15

इस समय सर्वर जो मुझे वेब खोज के माध्यम से मिला वह सही समय जानने के लिए दिखाई देता है:

$ date; ntpdate -q north-america.pool.ntp.org
Fri May 18 05:56:09 PDT 2012
server 208.38.65.37, stratum 2, offset 1752.625337, delay 0.10558
server 46.166.138.172, stratum 2, offset 1752.648597, delay 0.10629
server 205.189.158.228, stratum 3, offset 1752.672466, delay 0.11829
18 May 05:56:18 ntpdate[29752]: step time server 208.38.65.37 offset 1752.625337 sec

NTP से संबंधित कोई रिपोर्ट की गई त्रुटियाँ नहीं हैं:

$ grep -ic ntp /var/log/syslog
0

रिबूट करने के बाद, समय अपने आप सही हो गया और निम्नलिखित में दिखाई दिया /var/log/syslog:

May 18 17:58:12 aux ntpdate[1891]: step time server 91.189.94.4 offset 1838.497277 sec

Ntpdate द्वारा बताई गई ऑफसेट की एक लॉग से पता चलता है कि घड़ी हर घंटे लगभग 9 सेकंड से बह रही है:

$ while true; do ntpdate-debian -q | tail -n 1 >> 'drift.log'; sleep 16m; done
^C
$ r -e '
    attach(read.table("drift.log", header=FALSE))
    clock <- as.POSIXct(paste(V1, V2, V3), format="%d %b %H:%M:%S")
    fit <- lm(V10~clock)
    png("drift.png")
    plot(clock, V10, xlab="Clock time", ylab="Time server offset (s)")
    abline(fit)
    mtext(sprintf("Drift rate: %.2f s/hr", fit$coefficients[[2]]*3600))
'

घड़ी समय v। समय सर्वर ऑफसेट


पृष्ठभूमि: सटीक समय बनाए रखने के लिए ntp एक बेहतरीन उपकरण है । लेकिन, गलत समय से वर्तमान समय प्राप्त करने के लिए यह एक निश्चित समय (कई मिनट या कई घंटे) लेता है। यह ntp- सर्वर (आपकी पसंद) और इनसे आपके इंटरनेट विलंबता से संबंधित है। @ फ्लॉयड ने सही समय को जल्दी से लागू करने के लिए एक शॉर्टकट को रेखांकित किया है। लेकिन बेहतर समय (और एनटीपी के उपयोग ) के लिए एनटीपी-सर्वर के सावधानीपूर्वक चयन की आवश्यकता होती है।
david6

मेरी कार ऐसा करती है ... मुझे पागल कर देता है ... मुझे हर हफ्ते 20 मिनट का समय वापस करना
पड़ता है

पहली चीज जो मैं करने की कोशिश करूंगा वह मदरबोर्ड पर बैटरी को बदल रहा है ....
TheXed

जवाबों:


17

ntp आपके कंप्यूटर को सही समय पर सेट करने में अच्छी तरह से करता है, और यह करता है कि कभी भी इसे बिना पीछे की ओर चलाए - जो आपके द्वारा चलाए जा रहे कुछ कार्यक्रमों के लिए एक बुरी बात होगी।

यह न केवल समय निर्धारित करता है, बल्कि यह निरंतर समायोजन करता है कि आपका कंप्यूटर कैसे समय रखता है ताकि इसका समय न केवल एक पल में सही हो, बल्कि वास्तविक समय के करीब रहता है (दर्जनों मिलीसेकंड के भीतर, दर्जनों मिनट नहीं) । यह दोनों चरण (समय) और दर को समायोजित करता है (घड़ी "टिक" कितनी तेजी से)। ntp कभी भी घड़ी को पीछे की तरफ नहीं चलाता है। रिबूट के बाद घड़ी को टिक करने के लिए कितनी तेजी से स्थापित करने में एक लंबा समय लग सकता है, इसलिए ntp /var/lib/ntp/ntp.drift नामक फ़ाइल में बहाव का ट्रैक रखता है। चूंकि आप ntp नहीं चला रहे हैं, इसलिए इनमें से कोई भी नहीं होता है।

ntp उतना लोकप्रिय नहीं है जितना कि एक बार क्योंकि लैपटॉप और डेस्कटॉप सो रहे थे, और वर्चुअल मशीन इसे कुछ समय चलने से रोकती हैं। यह हर समय एक समय पर हर समय एक कंप्यूटर पर चलने के लिए डिज़ाइन किया गया है जो हर समय चल रहा है, और वास्तविक दुनिया में जहां समय निरंतर है। शायद इसलिए यह आधुनिक कार्य केंद्र पर डिफ़ॉल्ट रूप से स्थापित नहीं है। [Vmware के लिए, इसे देखें ]

इसके बजाय ntpdate चलाया जाता है जब नेटवर्क इंटरफ़ेस को लाया जाता है। जब एक स्लीपिंग लैपटॉप को जागृत किया जाता है, तो यह नेटवर्क कनेक्शन को पुन: स्थापित करता है, ntpdate चलाया जाता है, और समय फिर से सही हो जाता है। यदि मशीन की हार्डवेयर क्लॉक बहुत सटीक है, और नेटवर्क को अक्सर ऊपर और नीचे लाया जाता है, तो यह आमतौर पर ज्यादातर लोगों के लिए काफी अच्छा होता है।

किसी कारण से स्टॉक ntpdate नहीं चलता है। इस मामले में ntpdate-debian का उपयोग करें । For.mer के लिए सिंटेक्स की तरह कुछ है ntpdate ntp.ubuntu.com , बाद के लिए यह है ntpdate-डेबियन

उन चीजों में से एक की अनुपस्थिति में, तो समय को बनाए रखने के लिए एनटीपी एक बेहतर तरीका है।

सिस्टम को हर बार एक टाइमर इंटरप्ट लेने के लिए डिज़ाइन किया गया है और हर इंटरप्ट के समय के बारे में अपने विचार को अपडेट करता है। जब तक हार्डवेयर टाइमर कल्पना करने के लिए चल रहा है। समय बहुत अधिक बहाव नहीं है। यदि हार्डवेयर टाइमर नहीं है, तो समय अधिक बहाव होगा (ऐसी सभी घड़ियों को कुछ बहाव होगा, उसी कारण से आपकी कलाई घड़ी या बैटरी नियंत्रित घड़ी होगी। दीवार में प्लग की गई घड़ी आवृत्ति और चरण द्वारा रखे गए समय से सिंक होती हैं आपकी बिजली कंपनी)।

अधिकांश कंप्यूटर टाइमर एक क्रिस्टल नियंत्रित थरथरानवाला सर्किट द्वारा इसके एकीकृत सर्किट पर नियंत्रित होते हैं। क्रिस्टल के बावजूद, वे पर्यावरण के आधार पर तेजी से और धीमी गति से चलते हैं, ज्यादातर तापमान। जब तक आपके पास कुछ समय सिंक करने वाला सॉफ़्टवेयर स्थापित नहीं होता है जिसके बारे में हम नहीं जानते हैं, मैं कहूंगा कि आपके सिस्टम की घड़ी बंद है।

यदि आप एक या दो दिन के लिए ntp चलाना चाहते थे, तो यह /var/lib/ntp/ntp.drift में जानकारी संग्रहीत करेगा, जो यह इंगित करेगा कि उस दर को समायोजित करना होगा जिस पर आपके ऑपरेटिंग सिस्टम का समय प्रति बाधा के अनुसार आगे बढ़ रहा है। इंटरनेट पर मिलने वाले वास्तविक समय के साथ अपनी हार्डवेयर घड़ी की दर से मिलान करें। फ़ाइल को समान रखना और उसके बाद बस एक मिनट बाद ntp शुरू करना और रोकना (यह मानते हुए कि आप /var/lib/ntp/ntp.drift फ़ाइल को अपरिवर्तित रखते हैं) इसके लिए सही करने के लिए बहुत कुछ कर सकता है यदि घड़ी पूर्वाग्रह ttp सेट के बाद रहता है ntp समाप्त होता है। मुझे इस विस्तार पर यकीन नहीं है।

मुझे शक है कि ntp / var /lib/ntp/ntp.drift में स्टोर होगा, यह मेरी तुलना में बहुत अलग है।

यदि इस मशीन को हर समय चालू रखा जाता है, हालांकि, सबसे अच्छी बात यह है कि ntp स्थापित करना है और इसे अपना काम करने देना है। इसे शुरू करने से पहले सही समय पर विवरण के लिए अन्य उत्तर देखें। मैं अपने डेस्कटॉप पर ntp चलाता हूं और अपने लैपटॉप पर ntpdate करता हूं।

एक दिलचस्प संभव विकल्प, adjtimex, इस उत्तर में nealmcb द्वारा उल्लिखित है।

यदि आपका सिस्टम हर समय चालू नहीं रखा जाता है, तो बूट समय पर ntpdate चलाना एक अच्छा विकल्प लगता है।

अगर कंप्यूटर का समय पीछे की ओर चला जाए तो कुछ सॉफ्टवेयर को चेतावनी दे सकता है। बूट के बाद ntpdate चलाने से ऐसा हो सकता है।

एक गेचा, यह एक समस्या हो सकती है: जैसा कि मुझे याद है कि एनटीपी बहुत समय से दूर नहीं होने की उम्मीद करता है। यदि यह है, रूढ़िवादी कार्य करने की कोशिश कर रहा है, तो ntp समय को बिल्कुल भी समायोजित नहीं करेगा। यदि आप इस स्थिति में हैं, तो यह दोनों करने के लिए समझ में आता है - समय को सही समय पर आरम्भ करने के लिए ntpdate को चलाएं , और फिर ntp को सटीक टाइमकीपिंग प्रदान करने के लिए इसे चालू रखने दें। विशेष रूप से एक खराब मदरबोर्ड बैटरी इस त्रुटि का कारण बन सकती है, क्योंकि लंबे समय से बंद कंप्यूटर को बूट कर सकता है।


महान व्याख्या जॉन! बस एक छोटी सी बात - अधिकांश मदरबोर्ड पर दिनांक / समय एक अलग RTC (वास्तविक समय घड़ी) द्वारा बनाए रखा जाता है, जो अपने 32.768 KHz क्रिस्टल का उपयोग करता है (क्योंकि उस आवृत्ति को 2 ^ 15 से विभाजित करने से आपको ठीक एक सेकंड का समय मिलता है), और FSB घड़ी, जो आमतौर पर 100+ मेगाहर्ट्ज पर होती है, का डेट-टाइम-कीपिंग से कोई लेना-देना नहीं है - यदि ऐसा है तो ओवरकॉकिंग या अंडरक्लॉकिंग इसे गड़बड़ कर देगा - इसके बजाय यह आमतौर पर आरटीसी मॉड्यूल / सर्किट्री में क्रिस्टल बहाव है। क्या आप इस मुद्दे को देख सकते हैं और टिप्पणी का जवाब दे सकते हैं और / या इस को प्रतिबिंबित करने के लिए अपना उत्तर संपादित कर सकते हैं?
ish

मैं दोनों करूँगा! मैंने ओवर-क्लॉकिंग का उल्लेख हटा दिया है क्योंकि मुझे लगता है कि यह असंभव है, जैसा कि मैंने कहा था। हालाँकि, RTC का उपयोग बूट समय पर समय निर्धारित करने के लिए किया जाता है। जैसा कि आपकी टिप्पणी में उल्लेख है, यह केवल 1 सेकंड के लिए सटीक है। man rtcपेज कहते हैं: "RTCs सिस्टम घड़ी है, जो एक सॉफ्टवेयर कर्नेल द्वारा बनाए रखा और gettimeofday लागू करने के लिए इस्तेमाल किया घड़ी है के साथ भ्रमित नहीं होना चाहिए (2) ..." पता नहीं है कि क्या सिस्टम घड़ी एफएसबी घड़ी से संबंधित है । कर्नेल कॉन्फिग को देखते हुए नवीनतम उबंटू सटीक i386 कर्नेल में 250Hz पर सिस्टम क्लॉक को अपडेट किया जा रहा है। टिप्पणी के लिए धन्यवाद!
जॉन एस ग्रुबर

@izx मेरे लैपटॉप सिस्टम पर कर्नेल एचपीईटी को अपने क्लॉकसोर्स के रूप में उपयोग कर रहा है। यह विन्यास योग्य है। विकिपीडिया का कहना है कि यह साउथब्रिज फंक्शन का हिस्सा है। मुझे नहीं पता कि एफएसबी के साथ इसके संबंधों के बारे में क्या कहता है, लेकिन मैं इकट्ठा करता हूं कि एफएसबी नॉर्थब्रिज का हिस्सा है।
जॉन एस ग्रुबर

धन्यवाद, जॉन और @izx। मैं इस की समझ से प्रसन्न हूं। izx, मुझे आशा है कि आप इसे व्यक्तिगत रूप से नहीं लेंगे कि मैंने इसे इसके बजाय स्वीकार किया है। मुझे लगता है कि यह भविष्य के आगंतुकों के लिए बेहतर पढ़ा जाएगा।
ændrük

@ ændrük: कोई समस्या नहीं है, जैसा कि आप देख सकते हैं मैंने जॉन की पूरी तरह से बहुत सराहना की।
ish

12

- आमतौर पर समय केवल प्रत्येक बूट या वेक-अप-स्लीप पर एक बार सिंक किया जाता है

तो समस्या यह है कि उबंटू का डिफ़ॉल्ट समय सर्वर (यह क्या है?) गलत समय है, या उबंटू इंटरनेट से स्वचालित रूप से समय निर्धारित नहीं कर रहा है।

नहीं, उबंटू का टाइम सर्वर सही है, और इससे समय अपने आप सेट हो रहा है।

समस्या यह है कि आमतौर पर प्रत्येक बूटअप पर केवल एक बार होता है (या अधिक सटीक होने के लिए, हर बार नेटवर्क इंटरफ़ेस लाया जाता है - चाहे शटडाउन, नींद या हाइबरनेशन से)। आपके अपटाइम के आधार पर, यह कहना सुरक्षित है कि यह एक सप्ताह से अधिक समय में सिंक नहीं हुआ था। और आपका सिस्टम क्लॉक किसी कारण से थोड़ा तेज चल रहा है।

- cronयदि आप अक्सर रिबूट नहीं करते हैं, या आपके सर्वर / डेस्कटॉप को कभी नींद नहीं आती है, तो सिंक करने के लिए एक घंटे की नौकरी सेट करें

आपका सबसे अच्छा दांव क्रोन-नौकरी स्थापित करना है, अगर आप सुपर-सटीक समय चाहते हैं तो मैं प्रति घंटा कहूंगा। ऐसा करने का सबसे आसान तरीका है:

  • sudo editor /etc/cron.hourly/ntpsync

निम्नलिखित पंक्तियाँ जोड़ें:

#! / Bin / bash

ntpdate ntp.ubuntu.com # सर्वर की अपनी पसंद
  • सहेजें, बाहर निकलें और sudo chmod +x /etc/cron.hourly/ntpsync

/etc/cron.dailyयदि आप चाहें तो प्रति दिन एक बार के बजाय इसे रख सकते हैं।


सटीक। मैं सही ढंग से की मेरे सवाल का जवाब देने के लिए इस को स्वीकार कर रहा हूँ क्यों घड़ी गलत है, लेकिन मुझे लगता है कि वैकल्पिक हल के प्रति शंकित हूँ। इससे पहले कि मैं यह तय करूं कि मुझे क्या कार्रवाई करनी है।
æंड्रिक्स

यदि आप ntp.conf फ़ाइल में अपनी पसंद का सर्वर सेट करते हैं, तो क्या आपको इसे फिर से परिभाषित करने की आवश्यकता है?
स्नेक

6

यह तब हो सकता है जब आपने ntp समय डेमॉन स्थापित किया हो और मशीन पर समय बहुत जल्दी दूर हो।

इसे ठीक करने के लिए एक टर्मिनल खोलें और करें

  sudo service ntp stop
  sudo ntpdate swisstime.ethz.ch
  date
  sudo service ntp start

यह क्या करता है:

  1. Ntp डेमॉन बंद करो
  2. घड़ीका समय ठीक करें
  3. समय अब ​​सही होना चाहिए
  4. ntp डेमॉन को पुनः आरंभ करें

यदि आपके पास ntp स्थापित नहीं है, तो इसके साथ करें

  sudo apt-get install update

अद्यतन: एक cron नौकरी में ntpdate का उपयोग करना, जैसा कि यहां सुझाया गया है, सूक्ष्म समस्याओं की ओर जाता है।

Ntpdate हर घंटे या तो समय 'जंप' करेगा। Ntp के प्रयोग से इस समस्या से बचा जाता है, क्योंकि यह घड़ी को तिरछा करके समय को समायोजित करेगा। इसके अलावा, पड़ोस में एक ntp सर्वर का चयन करते समय और भी अधिक सटीकता देता है, यह आवश्यक नहीं है। डिफ़ॉल्ट ntp config फाइल में कई सर्वर होते हैं और सर्वर स्वतः किसी भी देरी के लिए क्षतिपूर्ति करता है।

निचला रेखा: - ntp का उपयोग करें - यदि आप बहुत दूर हैं, तो ntp बंद करें, एक बार ntpdate चलाएं और npp पुनः आरंभ करें।


/etc/init.d/ntpमौजूद नहीं है। यह एक हालिया उबंटू 12.04 स्थापना है और मैंने जानबूझकर समय से संबंधित कुछ भी नहीं बदला है।
ændrük

तब मैं इसे स्थापित करने की सलाह देता हूं।
फ्लोयड

जितना संभव हो, मैं सिस्टम-वाइड कॉन्फ़िगरेशन और सेवाओं के साथ मध्यस्थता नहीं करना पसंद करता हूं। यदि यह फ़ाइल डिफ़ॉल्ट रूप से स्थापित नहीं है, तो काम करने के लिए डिफ़ॉल्ट समय और दिनांक सेटिंग्स के लिए क्यों आवश्यक होना चाहिए?
ændrük

1
क्या रिबूट के बाद का समय सही है? मुझे संदेह है कि घड़ी अद्यतन केवल एक बार ntpdate चलाता है। कुछ प्रणालियों में यह समस्या है कि लिनक्स द्वारा बनाए रखा गया सिस्टम क्लॉक बहुत तेजी से चलता है। मेरे पास विशेष रूप से वर्चुअल मशीन के रूप में चलने वाली प्रणालियों के साथ है।
फ्लॉयड

1
यदि यह समस्या रिबूट या शटडाउन के बाद बनी रहती है, तो यह आपकी CMOS सेल MOBO में मृत हो सकती है।

1

मुझे एक समान समस्या थी और यह फ़ायरवॉल में कुछ के कारण हुआ था। अंत में मैंने प्रति घंटा क्रॉन जॉब जोड़ा, लेकिन एक मानक पोर्ट का उपयोग करने के लिए इसे प्राप्त -uकरने के ntpdateलिए तर्क जोड़ा ।

मेरी समस्या उबंटू द्वारा वास्तव में जाँच न करने पर ntpdateकाम करने के कारण हुई थी, लेकिन स्वचालित रूप से यह मानते हुए कि यह काम करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.