লিনাক্স কার্নেল "11-মিনিটের মোড" তৈরি করতে পারে সবচেয়ে বড় হার্ডওয়্যার ক্লক আপডেট কী?


18

যখন ntpdলিনাক্স সিস্টেমে নির্দিষ্ট সময় সম্পর্কিত প্রোগ্রামগুলি (যেমন ) চলমান থাকে তখন কার্নেলটি তথাকথিত "এগারো মিনিট মোডে" রূপান্তরিত হয় ( hwclockম্যান পৃষ্ঠাটি দেখুন) যার সাহায্যে এটি প্রতি ঘণ্টা মিনিটে সিস্টেম ঘড়ি থেকে হার্ডওয়্যার ঘড়িটি স্বয়ংক্রিয়ভাবে আপডেট করবে ।

SLES11-এ আমি দৃir়ভাবে স্থির করে রেখেছি যে আমি যদি সিস্টেমের ঘড়ির পিছনে 10 ঘন্টার মতো হার্ডওয়্যার ক্লকটি সেট করি তবে 11 মিনিটের মোডটি হার্ডওয়্যার ক্লকটি সিস্টেমের ঘড়ির সাথে মেলে তুলতে অক্ষম বলে মনে হয়। তবে আমি যদি সিস্টেমের ঘড়ির 5 মিনিটের পিছনে হার্ডওয়্যার ঘড়িটি সেট করি তবে 11-মিনিটের মোড একটি নিখুঁত মিল তৈরি করে।

সুতরাং আপাতদৃষ্টিতে এমন কিছু সর্বাধিক আপডেট রয়েছে যা 11 মিনিটের মোডটি পরিচালনা করতে পারে এবং আমি কী তা ভাবছি।


হালনাগাদ:

এটা অদ্ভুত ...

আরও পরীক্ষা-নিরীক্ষায় দেখা যায় যে যখন আমার কাছে এইচডাব্লু ক্লকটি সিস্টেম ঘড়ির 20 মিনিটের পিছনে থাকে তখন 11 মিনিটের মোডটি এইচডাব্লু ঘড়িটি সিস্টেম ঘড়ির ঠিক 30 মিনিটের পিছনে সেট করে (!):

# date
Tue Dec  6 10:16:52 EST 2011
# hwclock --set --date "12/6/11 09:56"
#
# date
Tue Dec  6 10:17:16 EST 2011
# hwclock --show
Tue Dec  6 09:56:06 2011  -0.156551 seconds
#
# date
Tue Dec  6 10:23:09 EST 2011
# hwclock --show
Tue Dec  6 10:01:58 2011  -0.535772 seconds
#
# date
Tue Dec  6 10:34:28 EST 2011
# hwclock --show
Tue Dec  6 10:04:27 2011  -0.192025 seconds

হালনাগাদ:

আমি এটি জুড়ে দৌড়েছি: https://bugs.archlinux.org/task/27408 যা বোঝায় যে ভাল বা খারাপের জন্য কার্নেল যখন হার্ডওয়ার ঘড়ি সময় সিস্টেম ঘড়ির সময় থেকে খুব দূরে থাকে তখন হার্ডওয়ার ঘড়ি আপডেট করে না।


এর কারণ কী হতে পারে তা আমার কোনও ধারণা নেই তবে আমি স্ট্যান্ডার্ড ক্লক প্রশ্নটি জিজ্ঞাসা করব: আপনার হার্ডওয়্যার ক্লকটি ইউটিসি তে সেট করা আছে? (এটি যদি না হয় সম্ভবত হয় - আপনার মনে করা আচরণের জন্য এই অ্যাকাউন্টগুলি আমি মনে করি না তবে এটি
অন্যরকম উদ্ভটতার

আপনি ভারতে আছেন বা ভারতীয় স্ট্যান্ডার্ড টাইমে আপনার ঘড়িটি সেট করছেন? এটি GMT +05: 30 হয় যাতে এটি 30 মিনিটের অফসেটের হয়ে থাকতে পারে। এছাড়াও (তবে অসম্ভব), ভারতে খারাপভাবে কনফিগার করা এনটিপি সার্ভার এর কারণ হতে পারে।
জাস্টিন ডিয়ারিং

নাঃ। আমি ইউএস / ইস্টার্নে এবং এনটিপি সার্ভারটি আমাদের অফিসে এবং ইউএস / ইস্টার্নেও।
কোয়ান্টামমেচানিক

এটি কি কোনও ভিপিএসে রয়েছে? এনটিপি এবং ভার্চুয়াল পরিবেশগুলি একসাথে ভাল খেলছে না।
স্ক্রিভিয়ার

আমি কার্নেলটিতে 11 মিনিটের মোডে কোনও রেফারেন্স তথ্য এবং এটির সীমাবদ্ধতাগুলি খুঁজে পেতে পারি না। তবে, এনটিপিডি চেক করে না যে সিস্টেমের সময় এবং এনটিপি সার্ভারের সময়টি 1000 সেকেন্ডের মধ্যে রয়েছে। যদি তা না হয় তবে এটি সিস্টেমের সময় সংশোধন করার চেষ্টা করবে না। এটি মনে করে যে এটি উদ্দেশ্য থেকে দূরে হতে পারে। এই কার্নেল মোডটি এনটিপিডির পরিবর্তে আপনাকে সীমাবদ্ধ করছে তা যাচাই করার কোনও উপায় আপনি কি ভাবতে পারেন?
জেকপুলাস

উত্তর:


5

hwclockRHEL 4.6 এর ম্যান পৃষ্ঠা থেকে :

This mode (we'll call it "11 minute mode") is off until something turns it on.  The ntp
daemon  xntpd  is  one thing  that  turns  it on.  You can turn it off by running
anything, including hwclock --hctosys, that sets the System Time the old fashioned way.

To see if it is on or off, use the command adjtimex --print and look at the value of
"status".  If the "64" bit of this number (expressed in binary) equal to 0, 11 minute mode 
is on.  Otherwise, it is off.

সুতরাং আপনার চালনার গুণে hwclock --setআপনি সম্ভবত এটি বন্ধ করে দিয়েছেন। একই টোকেন দ্বারা আপনি adjtimex --printনিশ্চিত করতে আউটপুট চেক করতে পারেন ।


এটি কীটি বন্ধ করে দেয় তা সিস্টেমের সময় নির্ধারণ করে । hwclock --setসিস্টেম সময় স্পর্শ করে না। আর যখন আমি কি adjtimex --printযে নিশ্চিত করে যে 11 মিনিট মোড উপর "64" বিট বন্ধ প্রকৃতপক্ষে, যেহেতু।
কোয়ান্টামেচানিক

"যদি এই সংখ্যার" 64 "বিট (বাইনারিতে প্রকাশিত হয়) 0, 11 মিনিটের মোড চালু হয়।" - এর অর্থ কি এই যে যদি স্থিতিটি বিজোড় হয় তবে 11 মিনিটের মোডটি বন্ধ থাকে (ধরে নেওয়া যায় যে স্ট্যাটাসটি 64-বিট এবং বিগ-এন্ডিয়ান বিট ক্রম)?
jfs

যদি এই সংখ্যার "64" বিট (বাইনারিতে প্রকাশিত হয়) 0 - এর সমান হয় তবে আমি এটি 7 তম বিটের অর্থ হিসাবে দেখছি, বা if((status & (1<<6)) == 0)11 মিনিটের মোড চালু আছে।
বিমিনিয়ার

11 মিনিটের মোডের বাস্তবায়ন রয়েছে: lxr.free-electrons.com/source/kernel/time/ntp.c?v=4.4#L509 sync_cmos_clock ফাংশন
ওএসজিএক্স

4

আসলে কার্নেলের এগারো মিনিট-মোডের সাথে এটির কোনও সম্পর্ক নেই। এটি এনটিপিডির একটি বৈশিষ্ট্যের সাথে সম্পর্কিত।

আপনি কি এনটিপি-র তথাকথিত অসঙ্গতি সীমা সম্পর্কে সচেতন? যদি সময়টি খুব বেশি দূরে থাকে (উদাহরণস্বরূপ 10 ঘন্টা) এনটিপিডি ছেড়ে দেয় এবং ঘড়ির কাটা না করে। এই ক্ষেত্রে, এনটিপিডি বা এনটিপিডিট ম্যানুয়ালি চালানো উচিত। এনটিপিডি বিকল্পটি এটি করা -gউচিত। ম্যান পৃষ্ঠা থেকে তথ্য পরীক্ষা করুন:

http://doc.ntp.org/4.1.0/ntpd.htm


1
এই মেশিনে ntpdইতিমধ্যে -gবিকল্প দিয়ে চালানো হচ্ছে ।
কোয়ান্টামমেচানিক

0

এগারো মিনিট মোডে থাকা 60 মিনিটেরও বেশি সময় বন্ধ থাকলে কার্নেল সময় সিঙ্ক করবে না। এটি সুস এন্টারপ্রাইজের একটি সাধারণ সমস্যা, আরও কিছু তথ্যের জন্য ওপেন সুস থেকে এই নিবন্ধটি দেখুন: https://lists.opensuse.org/opensuse-bugs/2011-06/msg01348.html

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.