লিনাক্স সিস্টেম সময় সাময়িকভাবে লাফ দেয়


11

আমি কিছু (হার্ডওয়্যার) সার্ভারগুলিতে এক অদ্ভুত সিস্টেমের সময় আচরণ পরিবর্তন করতে দেখেছি: /var/logs/syslogপ্রতিটি লগ বার্তার আগের তারিখের সময়টি কখনও কখনও এলোমেলোভাবে পরিবর্তিত হয় এবং নিম্নলিখিত বার্তায় স্বাভাবিক অবস্থায় ফিরে আসে:

Feb 22 2018 09:09:30 ...  
Feb 22 2018 09:09:32 ...  
Jan 13 2610 15:37:42 ...  
Feb 22 2018 09:09:33 ...  
Feb 22 2018 09:09:34 ...  

উদাহরণ হিসাবে, তারিখের সময়টির হঠাৎ পরিবর্তনটি কয়েকশো দূরে দূরে থাকতে পারে।

আমি নিশ্চিত করতে পারি যে অদ্ভুত সময় স্ট্যাম্পযুক্ত লগ বার্তাগুলি কোনও নির্দিষ্ট প্রক্রিয়া থেকে আসে না - এটি প্রতিটিের জন্য এলোমেলোভাবে ঘটতে পারে।

এবং 2 অস্বাভাবিক সময়ের পরিবর্তনের মধ্যে সময়কাল কয়েক মিনিট থেকে কয়েক ঘন্টার মধ্যে পরিবর্তিত হয় (তবে আমি সন্দেহ করি যে অস্বাভাবিক সময় পরিবর্তনগুলি আরও ঘন ঘন ঘটতে পারে তবে তাদের মধ্যে অনেকগুলি সিসলগে প্রকাশিত হয় না, কারণ এটি প্রতি সেকেন্ডে লগ লিখছে না)।

এছাড়াও, যেহেতু এটি একাধিক সার্ভারে ঘটে, তাই আমি ধরে নিই এটি কোনও হার্ডওয়্যার সমস্যা নয়।

Severs সম্পর্কে আরও তথ্য: এগুলি একটি নিয়ামক এবং কয়েকটি কম্পিউট নোড সহ একটি ওপেনস্ট্যাক ইনস্টলেশন। প্রতিটি সার্ভারে এনটিপি পরিষেবা চলছে। নিয়ামকটি তার নিজস্ব হার্ডওয়্যার ঘড়ি থেকে সময় নেওয়ার জন্য কনফিগার করা হয়েছে, এবং গণ্য নোড সার্ভারগুলি নিয়ামক থেকে সময় সিঙ্ক করে। নোট করুন যে প্রতিটি সার্ভারের নিজস্ব গতিতে অস্বাভাবিক সময় পরিবর্তন হয় - দেখে মনে হচ্ছে "ভুল সময়" এনটিপি-র মাধ্যমে নিয়ামক থেকে সিঙ্ক্রোনাইজ করা হয়নি।

আমি সন্দেহ করছিলাম যে গণনা নোডগুলিতে অতিথি সিস্টেমগুলি (ভার্চুয়াল মেশিনগুলি) তাদের হোস্ট সিস্টেমের সময়কে প্রভাবিত করতে পারে। তবে কোনও ভার্চুয়াল মেশিন না চালানোর সময় নিয়ন্ত্রকের একই সমস্যা কেন তা এটি ব্যাখ্যা করতে পারে না।

সনাক্ত করার জন্য আমার একটি পদ্ধতি প্রয়োজন: কে সিস্টেমের সময় পরিবর্তন করেছে এবং কীভাবে এটি ঘটে?


প্রদর্শিত টাইমস্ট্যাম্পগুলি কি প্রকৃত টাইমস্ট্যাম্পগুলি? আপনার কি আরও উদাহরণ দেখানোর আছে?
কুসালানন্দ

সার্ভারগুলি কি প্রশ্নযুক্ত ফলক সার্ভারগুলিতে রয়েছে? যদি তা হয় তবে ব্লেড চেসিস ম্যানেজমেন্ট ইউনিট পৃথক সার্ভার ব্লেডগুলির ঘড়িগুলি সিঙ্ক করার চেষ্টা করতে পারে। প্রকৃত সার্ভারের মডেলটি জানা জানা ক্লক হার্ডওয়্যার বাগগুলি অনুসন্ধান করার জন্য প্রয়োজনীয়।
telcoM

আপনি কি এইচডব্লিউ সময় নিরীক্ষণ করতে পারেন - hwclock? যদি এটির সময়েও এটি পরিবর্তন হয় ...
জারোস্লাভ কুচেরা

3
নোট করুন যে syslogd কেবল যে বার্তাটি যথাযথ লগ ফাইলে প্রেরণ করা হয়েছিল সেগুলির লিখিত সামগ্রীগুলি কেবল লিখে দেয়; টাইমস্ট্যাম্পটি আসলে বার্তাটির মধ্যেই প্রেরণ করা হয়, এটি সিসলগড দ্বারা উত্পাদিত হয় না। সুতরাং সম্ভবত কিছু বার্তা দূষিত করছে, বা যদি এটি এক ধরণের প্রক্রিয়া হয় তবে সম্ভবত সেই প্রক্রিয়াটি বগি সাইলগ বার্তা প্রেরণ করছে। এফওয়াইআই ফর্ম্যাটটি আরএফসি 3131 দ্বারা বর্ণিত হয়েছে; তারিখ / সময়ের অংশটি সরল ASCII তে প্রেরণ করা হয়।
wurtel

একাধিক পোস্টে ডুপ্লিকেট থেকে সমস্ত তথ্যের উপর সুপারিশার / প্রশ্নস / 1298404 এ রাখুন
জেডিবিপি

উত্তর:


1

প্রাসঙ্গিক দিকগুলি হ'ল বুট প্রক্রিয়া শুরুতে কার্নেল সংস্করণ এবং এই লাইনগুলি:

kernel: Fast TSC calibration using PIT
...
kernel: Calibrating delay loop (skipped), value calculated using timer frequency..
...
kernel: Switching to clocksource tsc

ওয়াইএমএমভি এবং আপনি টিএসসি বা পিআইটি ব্যবহার করছেন না

আফাইক এটি এমন একটি বাগ যা আপনার কমপক্ষে একটি সিপিইউর ঘড়ি ঘটার কারণে ঘটায় যা আপনার ক্ষেত্রে সম্ভবত খুব দ্রুত চলছে।

এটি চালিয়ে নিশ্চিত করা সহজ হওয়া উচিত:

for cpu in {0..8} ; do taskset -c $cpu date ; done

যা dateপ্রতিটি সিপিইউর বিরুদ্ধে চলবে (ধরে নিলে আপনার 8 টি কোর / থ্রেড রয়েছে)। যদি আমার অনুমান সঠিক হয় তবে আপনার সিপিইউগুলির একটিতে নিয়মিতভাবে ভুল সময় থাকবে।

যদি এটির ক্ষেত্রে হয় তবে আপনার প্রথমে কার্নেলটি আপগ্রেড করার চেষ্টা করা উচিত এবং যদি এটি কাজ না করে, ক্লকসোর্স বুট প্যারামিটারের সাহায্যে ফ্রিল্ড (এটি ধরে নেওয়া x86-64):

clocksource=    Override the default clocksource
                Format: <string>
                Override the default clocksource and use the clocksource
                with the name specified.
                Some clocksource names to choose from, depending on
                the platform:
                [all] jiffies (this is the base, fallback clocksource)
                [ACPI] acpi_pm
                ...
                [X86-64] hpet,tsc

এর ফলাফলও দেখুন:

cat /sys/devices/system/clocksource/clocksource*/available_clocksource

0

দেখে মনে হচ্ছে আপনার কন্ট্রোলার সার্ভারে থাকা হার্ডওয়ার ক্লকটি সেই সময় সম্পর্কিত তথ্যের স্থিতিশীল সংস্থান নয়। আরও নির্ভরযোগ্য পারমাণবিক ঘড়ির সাথে টাইপটি টাইপ করে সিঙ্ক করতে আপনার নিয়ামককে আপনার কনফিগার করা উচিত।

আপনার হার্ডওয়ার ক্লকটি আপডেট করতে আপনি এই আদেশটি ব্যবহার করতে পারেন: hwclock -s

আরো দেখুন:

   -s, --hctosys
          Set the System Time from the Hardware Clock.

          Also set the kernel's timezone value to the local timezone as indicated by the TZ environment variable and/or /usr/share/zoneinfo, as tzset(3) would interpret them.  The obsolete tz_dsttime field of the kernel's time‐
          zone value is set to DST_NONE.  (For details on what this field used to mean, see settimeofday(2).)

          This is a good option to use in one of the system startup scripts.

   -w, --systohc
          Set the Hardware Clock to the current System Time.

0

থেকে অনুলিপি করা হয়েছে: সিআরএন বার্তাগুলি সিসলোগে স্বেচ্ছাসেবী দীর্ঘ সময়ের জন্য বিলম্বিত হচ্ছে :

সংক্ষেপে, আমি ব্যবহার করছি আরআরএসলগের সংস্করণে একটি বাগ রয়েছে, যা নির্ধারিত সময়ের জন্য প্রাপ্ত সিসলগ বার্তাটি বিলম্ব করবে। বাগ রিপোর্ট এখানে। আর আরএসগ্লগ আপগ্রেড করা সমস্যার সমাধান করেছে। এটি CRON এর দোষ নয়।


-1

এ জাতীয় অসঙ্গতিগুলি এড়াতে আপনার একটি বাহ্যিক এনটিপি সার্ভার স্ট্র্যাটাম 1 বা 2 উত্সের সাথে সিঙ্ক্রোনাইজ করা উচিত। হার্ডওয়্যার ক্লকগুলি নির্ভরযোগ্য নয়।

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