দ্বিতীয় দিন লীপসের সময় লিনাক্স সার্ভারের ক্র্যাশগুলির উচ্চ হারের অভিজ্ঞতা থাকা আর কেউ?


365

* দ্রষ্টব্য: যদি আপনার সার্ভারে এখনও বিভ্রান্ত কার্নেলগুলির কারণে সমস্যা থাকে এবং আপনি পুনরায় বুট করতে না পারেন - আপনার সিস্টেমে ইনস্টল করা gnu তারিখের সাথে প্রস্তাবিত সবচেয়ে সহজ সমাধানটি হ'ল: তারিখ-এখন। এটি কার্নেলের অভ্যন্তরীণ "সময়_ওয়াস_সেট" পরিবর্তনশীলটিকে পুনরায় সেট করবে এবং জাভা এবং অন্যান্য ব্যবহারকারী স্থানের সরঞ্জামগুলিতে সিপিইউ হগিং ফিউটেক্স লুপগুলি ঠিক করবে। আমি এই কমান্ডটি নিজের সিস্টেমে চাপিয়ে দিয়েছি এটি একটি টিনে যা বলেছে তা করছে এটি একটি নিশ্চিত করেছে

ময়নাতদন্ত

অ্যান্টিক্লিম্যাক্স: মারা গিয়েছিল কেবলমাত্র আমার ভিপিএন (ওপেনভিপিএন) ক্লাস্টারের লিঙ্ক, সুতরাং এটি পুনরায় প্রতিষ্ঠিত হওয়ার সময় বেশ কয়েক সেকেন্ড ছিল একটি উত্তেজনাপূর্ণ। অন্য সব কিছু ঠিকঠাক ছিল, এবং লিপ সেকেন্ডটি কেটে যাওয়ার পরে এনটিপি শুরু করা পরিষ্কারভাবে চলে গেল।

আমি আমার সম্পূর্ণ অভিজ্ঞতাটি লিখেছি http://blog.fastmail.fm/2012/07/03/a-story-of-leaping-seconds/

আপনি যদি http://my.opera.com/marcomarongiu/blog/2012/06/01/an-humble-attempt-to-work-around-the-leap-second- এ মার্কোর ব্লগটি দেখুন তবে তার সমাধান রয়েছে 1 সেকেন্ডের এড়াতে এড়ানোর জন্য এনটিপিডি-এক্স ব্যবহার করে 24 ঘন্টা সময় পরিবর্তনের সময়সই করা। এটি আপনার নিজস্ব এনটিপি অবকাঠামো চালানোর জন্য বিকল্প বিকল্প পদ্ধতি।


ঠিক আজ, শনিবার 30 ই জুন, ২০১২ - দিন শুরুর পরেই শুরু হচ্ছে জিএমটি। আমাদের বিভিন্ন মুঠোয় সার্ভার রয়েছে যা বিভিন্ন দল দ্বারা পরিচালিত হিসাবে সমস্ত দল অন্ধকার হয়ে যায় - পিংসের প্রতিক্রিয়া না করে, ফাঁকা ফাঁকা।

স্টক কার্নেল থেকে শুরু করে কাস্টম 3.2.21 পর্যন্ত সমস্ত কিছুই - তারা সকলেই ডিবান স্কুইজ চালাচ্ছে। বেশিরভাগ ডেল এম 610 ব্লেড, তবে আমি কেবল একটি ডেল আর 510 হারিয়েছি এবং অন্যান্য বিভাগগুলি অন্যান্য বিক্রেতাদের কাছ থেকেও মেশিন হারিয়েছে। এছাড়াও একটি পুরানো আইবিএম x3550 ছিল যা ক্র্যাশ হয়ে গেছে এবং যা আমার মনে হয়েছে এটি কোনও সম্পর্কযুক্ত নয়, তবে এখন আমি ভাবছি।

আমি যে স্ক্রিন ডাম্প পেয়েছি তার মধ্যে একটি ক্র্যাশ বলেছিল:

[3161000.864001] BUG: spinlock lockup on CPU#1, ntpd/3358
[3161000.864001]  lock: ffff88083fc0d740, .magic: dead4ead, .owner: imapd/24737, .owner_cpu: 0

দুর্ভাগ্যক্রমে সমস্ত ব্লেডগুলি অনুমিতভাবে kdump কনফিগার করা ছিল, তবে এগুলি এতোটাই মারা গেল যে কেডম্পটি ট্রিগার করেনি - এবং তাদের কনসোল ফাঁকা চালু ছিল। আমি এখন কনসোল ফাঁকা নিষ্ক্রিয় করেছি, তাই আঙ্গুলগুলি অতিক্রম করে আমার পরবর্তী ক্র্যাশ হওয়ার পরে আরও তথ্য থাকবে।

এটি জানতে চাই যে এটি একটি সাধারণ থ্রেড বা "কেবল আমাদের"। এটি সত্যিই অদ্ভুত যে তারা বিভিন্ন সময় বিভিন্ন কেনা বিভিন্ন ডেটাসেন্ট্রেসে বিভিন্ন ইউনিট এবং বিভিন্ন অ্যাডমিনদের দ্বারা চালিত হয় (আমি ফাস্টমেল.এফএম চালনা করি) ... এবং এখন এমনকি বিভিন্ন বিক্রেতার হার্ডওয়্যার। বিধ্বস্ত হওয়া বেশিরভাগ মেশিনগুলি সপ্তাহ / মাস ধরে চলছিল এবং 3.1 বা 3.2 সিরিজের কার্নেল চালিয়ে যাচ্ছিল।

অতি সাম্প্রতিক ক্র্যাশটি এমন একটি মেশিন ছিল যা কেবল প্রায় 3.2.21 দৌড়ে প্রায় 6 ঘন্টা সময় নেয়।

ওয়ার্কআউন্ড

ওকে লোকেরা, আমি এখানে এটির কাজ করেছি।

  1. অক্ষম এনটিপি: /etc/init.d/ntp stop
  2. http://linux.brong.fastmail.fm/2012-06-30/fixtime.pl তৈরি হয়েছে (মার্কো থেকে কোড চুরি হয়েছে, মন্তব্যগুলিতে ব্লগ পোস্টগুলি দেখুন)
  3. fixtime.plএকটি লিপ দ্বিতীয় সেট আছে তা দেখতে কোনও যুক্তি ছাড়াই দৌড়ে গেল
  4. fixtime.plলিপ সেকেন্ড সরাতে একটি যুক্তি নিয়ে দৌড়ে গেল

দ্রষ্টব্য: উপর নির্ভর করে adjtimex। আমি স্ক্লিজadjtimex বাইনারিটির একটি অনুলিপি http://linux.brong.fastmail.fm/2012-06-30/adjtimexরেখেছি - এটি একটি স্কিচ 64 বিট সিস্টেমে নির্ভরতা ছাড়াই চলবে। আপনি যদি একই ডিরেক্টরিতে fixtime.plরেখে দেন তবে সিস্টেমটি উপস্থিত না থাকলে এটি ব্যবহৃত হবে। স্পষ্টতই যদি আপনার 64৪-বিট চেপে না থাকে ... নিজেরটি সন্ধান করুন।

আমি ntpআগামীকাল আবার শুরু করতে যাচ্ছি ।

বেনামে ব্যবহারকারীর পরামর্শ অনুসারে - দৌড়ের বিকল্প adjtimexহ'ল নিজের সময় ঠিক করা, যা সম্ভবত লিপসেকেন্ড কাউন্টারকে সাফ করবে।


58
আজ 30 তম একটি লাফালাফি রয়েছে। আমি বলতে দ্বিধা করছি যে এটি আপনার সমস্যা, তবে আমি আমার দেবিয়ান মেশিনগুলি খুব কাছ থেকে দেখছি।
jscott

2
সকাল থেকে আমরা বিভিন্ন বিক্রেতাদের কমপক্ষে 9 টি বিভিন্ন ডিবিয়ান স্কিজে বাক্স হারিয়ে যাচ্ছি সমস্ত চলমান স্টক 2.6.32 কার্নেলটি স্ক্লিজ করুন। কনসোল ফাঁকা থাকার কারণে আমরা ক্র্যাশ ডাম্প পেতে
পারিনি


2
এটি রিপোর্ট করার জন্য ধন্যবাদ! আমি এখন আমার সার্ভারগুলিকে খুব কাছ থেকে ঘুরে দেখছি।
জান্নে পিক্কারায়েন

5
এলকেএমএল থ্রেড নির্দেশ করে যা date -s "`date`"সহায়তা করে - এটি অবশ্যই আমাকে সহায়তা করেছিল।
পয়েন্টটি

উত্তর:


321

এনটিপিডি অ্যাডটাইমেক্স (২) কে লিপ সেকেন্ড সন্নিবেশ করানোর জন্য বলার জন্য লাইভলকের কারণে ঘটে। দেখুন lkML পোস্টিং http://lkml.indiana.edu/hypermail/linux/kernel/1203.1/04598.html

রেড হ্যাট এছাড়াও তাদের কেবি নিবন্ধ আপডেট করা উচিত। https://access.redhat.com/knowledge/articles/15145

আপডেট: রেড হ্যাট এখানে শুধু এই সমস্যার জন্য একটি দ্বিতীয় কিলোবাইট নিবন্ধ রয়েছে: https://access.redhat.com/knowledge/solutions/154713 - পূর্ববর্তী নিবন্ধটি একটি আগে, সম্পর্কহীন সমস্যা হয়

কাজের চারপাশে কেবল এনটিপিডি বন্ধ করা। এনটিপিডি যদি ইতিমধ্যে অ্যাডটাইমেক্স (2) কল জারি করে থাকে তবে আপনার 100% নিরাপদ থাকতে এনটিপিডি অক্ষম করতে হবে এবং পুনরায় বুট করতে হবে।

এটি আরএইচএল 6 এবং অন্যান্য ডিস্ট্রোগুলিকে নতুন কার্নেলগুলি চালিয়ে (প্রায় 2.6.26 এর চেয়ে নতুন) প্রভাবিত করে, তবে আরএইচইএল 5 নয়।

লিপ সেকেন্ডটি আসলে হওয়ার আগে এটি হওয়ার কারণটি হ'ল এনটিপিডি কর্নেলটিকে মধ্যরাতে দ্বিতীয় দিকে লিপটি পরিচালনা করতে দেয় তবে মধ্যরাতের আগে লিপ দ্বিতীয়টি প্রবেশ করানোর জন্য কার্নেলকে সতর্ক করতে হবে। এনটিপিডি অতএব লিপ সেকেন্ডের দিনের মাঝে মাঝে অ্যাডটাইমেক্স (2) কে কল করে, এই সময়ে এই বাগটি ট্রিগার করা হয়।

যদি আপনার অ্যাডটাইমেক্স (8) ইনস্টল করা থাকে তবে পতাকা 16 টি সেট করা আছে কিনা তা নির্ধারণ করতে আপনি এই স্ক্রিপ্টটি ব্যবহার করতে পারেন। পতাকা 16 "লিপ সেকেন্ড সন্নিবেশ করছে":

adjtimex -p | perl -p -e 'undef $_, next unless m/status: (\d+)/; (16 & $1) && print "leap second flag is set:\n"'

হালনাগাদ:

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

আপডেট: উপরের ভাষাটি রেড হ্যাট নিবন্ধ থেকে সরানো হয়েছে; এবং দ্বিতীয় কেবি সমাধানটি অ্যাডটাইমেক্স (২) ক্র্যাশ ইস্যুটির বিশদ যুক্ত করা হয়েছিল: https://access.redhat.com/ জ্ঞান / সমাধানগুলি / 154713

তবে আইবিএম ইঞ্জিনিয়ার জন স্টল্টজের এলকেএমএল পোস্টে কোড পরিবর্তন নোট করে যে লিপ সেকেন্ডটি আসলে প্রয়োগ করার সময় অচলাবস্থার সৃষ্টি হতে পারে, সুতরাং আপনি এনটিপিডি অক্ষম করার পরে রিবুট বা অ্যাডটাইমেক্স (8) ব্যবহার করে লিপ সেকেন্ডটি অক্ষম করতে পারেন।

শেষ আপডেট:

ঠিক আছে, আমি কোনও কার্নেল দেব নই, তবে আমি জন স্টুল্টজের প্যাচটি এখানে আবার পর্যালোচনা করেছি: https://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git ; a=commit ;h = 6b43ae8a619d17c4935c3320d2ef9e92bdeed05d

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

শীঘ্রই আরও কোনও বাগ আছে কিনা তা আমরা খুঁজে বের করব :)

দ্বিতীয় পোস্ট আপডেট করুন:

আমি শেষ কয়েক ঘন্টা এনটিপিডি এবং প্রি-প্যাচ (বগি) কার্নেল কোডটি পড়ে কাটিয়েছি এবং আমি এখানে খুব ভুল হতে পারি, আমি কী ভাবছিলাম তা ব্যাখ্যা করার চেষ্টা করব:

প্রথমে, এনটিপিডি সমস্ত সময় অ্যাডটাইমেক্স (2) কল করে। এটি এটির "ক্লক লুপ ফিল্টার" এর অংশ হিসাবে এনটিপি_লুপফিল্টার.কে স্থানীয়_ঘড়িতে সংজ্ঞায়িত হয়েছে। আপনি এখানে কোডটি দেখতে পারেন: http://www.opensource.apple.com/source/ntp/ntp-70/ntpd/ntp_loopfilter.c (এনটিপি সংস্করণ 4.2.6 থেকে))

ক্লক লুপ ফিল্টারটি প্রায়শই চলতে থাকে - এটি এনটিপিডি প্রতিবার তার প্রবাহের সার্ভারগুলিতে পোল চালায় যা ডিফল্টরূপে প্রতি 17 মিনিট বা তারও বেশি সময় পরে। ক্লক লুপ ফিল্টারটির প্রাসঙ্গিক বিটটি হ'ল:

if (sys_leap == LEAP_ADDSECOND)
    ntv.status |= STA_INS;

এবং তারপর:

ntp_adjtime(&ntv)

অন্য কথায়, যে দিনগুলিতে একটি লিপ দ্বিতীয় হয়, এনটিপিডি "এসটিএএনপিএস" পতাকা সেট করে এবং অ্যাডটাইমেক্স (2) (তার বহনযোগ্যতা-মোড়কের মাধ্যমে) কল করে।

এই সিস্টেম কলটি কার্নেলের দিকে এগিয়ে যায়। এখানে প্রাসঙ্গিক কার্নেল কোডটি রয়েছে: https://github.com/mirferences/linux/blob/a078c6d0e6288fad6d83fb6d5edd91ddb7b6ab33/kernel/time/ntp.c

কার্নেল কোডেপাথ মোটামুটি এটি:

  • লাইন 663 - do_adjimex রুটিনের শুরু।
  • লাইন 691 - যে কোনও বিদ্যমান লিপ-সেকেন্ড টাইমার বাতিল করুন।
  • 709 লাইন - এনটিপি_লোক স্পিনলক ধরুন (এই লকটি সম্ভাব্য লাইভলোক ক্র্যাশে জড়িত রয়েছে)
  • লাইন 724 - কল প্রক্রিয়া_জডটাইম_মোড।
  • লাইন 616 - কল প্রক্রিয়া_এডজে_ স্ট্যাটাস।
  • লাইন 590 - টাইম_স্ট্যাটাস গ্লোবাল ভেরিয়েবল সেট করুন, অ্যাডটাইমেক্স (2) কলটিতে সেট করা পতাকাগুলির ভিত্তিতে
  • 592 লাইন - সময়_সেট বৈশ্বিক চলক পরীক্ষা করুন। বেশিরভাগ ক্ষেত্রে, কল করুন এনটিপি_স্টার্ট_লিপ_টিমার।
  • 554 লাইন - সময়_স্ট্যাটাস গ্লোবাল ভেরিয়েবল পরীক্ষা করুন। এসটিএএনপিএস সেট করা হবে, তাই লিপ দ্বিতীয় টাইমারটি শুরু করতে টাইমস্টেট টিআইএমআইআইএনএস-এ সেট করুন এবং রাইটিমার_স্টার্ট (অন্য কার্নেল ফাংশন) কল করুন। একটি টাইমার তৈরির প্রক্রিয়াতে, এই কোডটি এক্সটাইম_লকটি ধরে। যদি অন্য সিপিইউ ইতিমধ্যে xটাইম_লক এবং এনটিপি_লোক ধরে ফেলেছে, তবে কার্নেলটি লাইভলক করে। এই কারণেই জন স্টল্টজ প্যাচটি লিখেছিলেন হর্টিমার ব্যবহার এড়াতে। এটিই আজ সবাইকে সমস্যায় ফেলেছিল।
  • 598 লাইন - যদি ntp_start_leap_timer আসলে একটি লিপ টাইমার শুরু না করে, সময়_সেটটি TIME_OK এ সেট করুন
  • 751 লাইন - ধরে নিলে কার্নেলটি লাইভলক হয় না, স্ট্যাকটি আনউন্ডউড এবং এনটিপি_লোক স্পিনলক প্রকাশিত হবে।

এখানে বেশ কয়েকটি আকর্ষণীয় জিনিস রয়েছে।

প্রথমত, লাইন 691 প্রতি টাইম অ্যাডটাইমেক্স (2) বলা হয়ে বিদ্যমান টাইমার বাতিল করে। তারপরে, 554 টাইমারটি পুনরায় তৈরি করে। এর অর্থ প্রতিবার এনটিপিডি তার ক্লক লুপ ফিল্টারটি চালিয়েছিল, বগী কোডটি চাওয়া হয়েছিল।

সুতরাং আমি বিশ্বাস করি যে রেড হ্যাট ভুল ছিল যখন তারা বলেছিল যে একবার এনটিপিডি লিপ-সেকেন্ড পতাকাটি স্থাপন করেছিল, সিস্টেমটি ক্র্যাশ হবে না। আমি বিশ্বাস করি এনটিপিডি চলমান প্রতিটি সিস্টেমের লিপ-সেকেন্ডের আগে 24 ঘন্টা সময়কালে প্রতি 17 মিনিটে (বা আরও বেশি) লাইভলকের সম্ভাবনা ছিল। আমি বিশ্বাস করি যে এটি এতগুলি সিস্টেম ক্র্যাশ হওয়ার কারণও ব্যাখ্যা করতে পারে; এক ঘন্টার 3 টি সম্ভাবনার তুলনায় ক্র্যাশ হওয়ার এক সময়ের সম্ভাবনা হিট হওয়ার সম্ভাবনা অনেক কম।

আপডেট: https://access.redhat.com/ জ্ঞান / সলিউশনস / 154713 এ রেড হ্যাট এর কেবি সমাধানে , রেড হ্যাট ইঞ্জিনিয়াররা একই সিদ্ধান্তে এসেছিলেন (যে এনটিপিডি চলমান ক্রমাগত বগি কোডটিতে আঘাত করবে)। এবং সত্যই তারা আমার কাজ করার আগে বেশ কয়েক ঘন্টা আগে এটি করেছিল। এই সমাধান প্রধান নিবন্ধ লিঙ্ক করা হয় নি https://access.redhat.com/knowledge/articles/15145 , তাই আমি এখন পর্যন্ত তা খেয়ালই করেন নি।

দ্বিতীয়ত, বোঝায় যে লোড হওয়া সিস্টেমে ক্রাশ হওয়ার সম্ভাবনা বেশি ছিল this লোড হওয়া সিস্টেমগুলি আরও বাধা হ্যান্ডেল করবে, যার ফলে "do_tick" কার্নেল ফাংশনটি প্রায়শই ডাকা হবে, টাইমার তৈরি হওয়ার সময় এই কোডটি চালানোর এবং এনটিপি_লকটি ধরে নেওয়ার আরও বেশি সুযোগ দেবে।

তৃতীয়ত, যখন লিপ-সেকেন্ড আসলে ঘটে তখন সিস্টেমটি ক্র্যাশ হওয়ার কোন সম্ভাবনা আছে? আমি নিশ্চিতভাবে জানি না, তবে সম্ভবত হ্যাঁ, কারণ টাইমারটি যা আগুন জ্বলে ও প্রকৃতপক্ষে লিপ-সেকেন্ড অ্যাডজাস্টমেন্ট কার্যকর করে (এনটিপি_লেপ_সেকেন্ড, লাইন 388) এছাড়াও এনটিপি_লক স্পিনলক ধরে, এবং hrtimer_add_expires_ns এ কল করেছে। আমি জানি না যে এই কলটি কোনও লাইভলকের কারণ হতে পারে কিনা, তবে এটি অসম্ভব বলে মনে হয় না।

অবশেষে, লিপ-সেকেন্ড চলার পরে লিপ-সেকেন্ড পতাকাটি অক্ষম হওয়ার কারণ কী? সেখানে উত্তরটি এনটিপিডি মধ্যরাতের পরে লিপ-সেকেন্ড পতাকা নির্ধারণ বন্ধ করে যখন এটি অ্যাডটাইমেক্স (2) কল করে। যেহেতু পতাকাটি সেট করা নেই, 554 লাইনের চেকটি সত্য হবে না এবং কোনও টাইমার তৈরি হবে না এবং 598 লাইনটি টাইম_স্টেট গ্লোবাল ভেরিয়েবলটি TIME_OK এ পুনরায় সেট করবে। এটি ব্যাখ্যা করে যে আপনি লিপ সেকেন্ডের ঠিক পরে অ্যাডটাইমেক্স (8) দিয়ে পতাকাটি কেন পরীক্ষা করে দেখলে আপনি এখনও লিপ-দ্বিতীয় পতাকা সেট দেখতে পাবেন।

সংক্ষেপে, আজকের সর্বোত্তম পরামর্শটি সর্বোপরি আমি দেওয়া প্রথম বলে মনে হচ্ছে: এনটিপিডি অক্ষম করুন এবং লিপ-দ্বিতীয় পতাকাটি অক্ষম করুন।

এবং কিছু চূড়ান্ত চিন্তা:

  • লিনাক্স বিক্রেতাদের মধ্যে কেউ জন স্টল্টসের প্যাচ লক্ষ্য করে তাদের কর্নেলগুলিতে প্রয়োগ করেনি :(
  • জন স্টল্টজ কেন কিছু বিক্রেতাদের এটির দরকার ছিল সে সম্পর্কে সতর্ক করলেন না? সম্ভবত লাইভলকের সম্ভাবনা কম বলে মনে হচ্ছে শোনার আক্রমণের প্রয়োজন ছিল না।
  • আমি যখন লিপ-সেকেন্ড প্রয়োগ করা হয়েছিল তখন জাভা প্রক্রিয়াগুলি লকআপ বা স্পিনিংয়ের রিপোর্ট শুনেছি। সম্ভবত আমাদের গুগলের নেতৃত্ব অনুসরণ করা উচিত এবং আমরা আমাদের সিস্টেমে কীভাবে লিপ-সেকেন্ড প্রয়োগ করি তা পুনর্বিবেচনা করা উচিত: http://googleblog.blogspot.com/2011/09/time-technology-and-leaping-seconds.html

জন স্টল্টজ থেকে 06/02 আপডেট:

https://lkml.org/lkml/2012/7/1/203

লিপ সেকেন্ডে ফিউটেক্স টাইমারগুলি অকাল এবং অবিচ্ছিন্নভাবে সিপিইউ লোডকে ছড়িয়ে দিয়েছিল কেন এই পদক্ষেপে একটি ধাপে ধাপে পদক্ষেপ ছিল।


7
চমৎকার উত্তরের জন্য ধন্যবাদ। সুতরাং আমাদের বাকী সার্ভারগুলি ক্র্যাশ করার অপেক্ষায় বসে আছে। বাহ। এখানে ঘূর্ণায়মান পুনরায় চালু হয়!
ব্রোন গন্ডওয়ানা

3
আমি কীভাবে জানতে পারি যে adjtimexজারি করা হয়েছে কিনা , কার্নেলটি dmesg তে কিছু মুদ্রণ করে? এনটিপিডি বন্ধ করার আগে যে সিস্টেমটি ক্রাশ হয়নি তার ক্রাশ হওয়ার কী সম্ভাবনা রয়েছে?
হুবার্ট কারিও

3
হুবার্ট: "অ্যাডটাইমেক্স" চালান (এটি সাধারণত পৃথকভাবে প্যাকেজ করা হয়) এবং লিপ দ্বিতীয়টি মুলতুবি রাখতে ইঙ্গিত করতে 16 পতাকা সন্ধান করুন।
ডোমিনিক ক্লিয়ার

22
আপনি প্রতিনিধি ক্যাপ ঘৃণা করতে যাচ্ছেন।
ওয়েসলে

26
@ ওয়েসলি ডেভিড: কোনও উদ্বেগ নেই, রেপ ক্যাপটি ইউটিসি মধ্যরাতে পুনরায় সেট হবে will হতে পারে.
এমএমইয়ার্স

33

এটি আমাদের কঠিন আঘাত। আমাদের অনেক হোস্ট পুনঃসূচনা করার পরে, নিম্নলিখিতটি হোস্ট পুনরায় চালু না করে বিব্রতকরভাবে সহজ এবং সম্পূর্ণ কার্যকর হতে দেখা গেছে:

/etc/init.d/ntp stop
ntpdate 0.us.pool.ntp.org
/etc/init.d/ntp start

যা প্রয়োজন তা হ'ল সিস্টেমের ঘড়িটি পুনরায় সেট করা। Sheesh। আমি এটি ছয় ঘন্টা আগে জানতে হবে কি দিতে।


8
date -s "`date`"আমার জন্য কাজ।
পয়েন্টটি

@ ডিয়ানবি: আমি ইউটিসি ভোর তিনটায় পোস্ট করেছি যে ঘড়ির পুনরায় সেট করা কৌশলটি সম্পাদন করে, দুর্ভাগ্যক্রমে সংযত হতে কিছুটা সময় নিয়েছিল। আমরা সার্ভারগুলিও পুনরায় চালু করতে শুরু করেছি
গ্রেগর

24

একটি সাধারণ সি প্রোগ্রাম যা কার্নেলের সময় স্থিতির ক্ষেত্রে লিপ দ্বিতীয় বিটটি সাফ করে:

#include <sys/timex.h>
#include <string.h>
#include <stdio.h>

int main(int argc, char **argv) {
    struct timex txc;
    int ret;

    (void) argc;
    (void) argv;

    bzero(&txc, sizeof(txc));
    txc.modes = 0;  /* fetch */
    ret = adjtimex(&txc);
    if (ret < 0) {
        perror("adjtimex (get)");
        return 1;
    }

    txc.modes = ADJ_STATUS;
    txc.status &= ~16;
    ret = adjtimex(&txc);
    if (ret < 0) {
        perror("adjtimex (set)");
        return 1;
    }

    return 0;
}

সংরক্ষণ করুন lsec.c, এর সাথে সংকলন করুন gcc -Wall -Wextra -o lsec lsec.cএবং রুট হিসাবে চালান।

আপনি সম্ভবত এটি চালানোর আগে এনটিপিডি বন্ধ করতে চান এবং লিপ সেকেন্ডের পরে এনটিপিডি পুনরায় চালু করতে চান।


কী (void) argc;সাধন করে? চুপচাপ অব্যবহৃত ভেরিয়েবলের জন্য সতর্কতা? ব্যবহার কি int main()একই কাজ না? পেডেন্ট হওয়ার চেষ্টা করছি না, আমি সত্যই আগ্রহী।
gparent

18

পোস্টমর্টেম দেখে মনে হচ্ছে। / এলসিএসের কোনও প্রভাব নেই।

আমরা যা দেখছি তা হ'ল সিপিইউ খাওয়ার প্রচুর পরিমাণে সফ্টিরকিডি প্রক্রিয়া (সাধারণত জাভা প্রক্রিয়াগুলির বোঝার ক্ষেত্রে রৈখিক)

এনটিপি দ্বারা ইতিমধ্যে প্রয়োগ করা লিপ সেকেন্ডের সাথে পোষ্টমার্টেম ঠিক করতে কী কাজ করে তা নীচে:

এটি কেবল জারি করার জন্য যথেষ্ট বলে মনে হচ্ছে:

export LANG="en_EN"; date -s "`date`"

এটি এনটিপিডি পুনরায় আরম্ভ বা পুনরায় বুট না করে লোড হ্রাস করতে হবে। বিকল্পভাবে আপনি ইস্যু করতে পারেন:

apt-get install ntpdate
/etc/init.d/ntpd stop; ntpdate pool.ntp.org; /etc/init.d/ntpd start

কেন sntp -sএবং না ntpdate?
ভুল ত্রুটি

এনটিপিডেটটি এখানে এসএনটিপি করার জন্য কেবল একটি মোড়ক, নিশ্চিত এটি এনটিপিডিট ব্যবহার করাও ঠিক।
গ্রেগর

আহ আমি সম্পূর্ণরূপে মিস করেছি এমন একটি এনটিপিডিট প্যাকেজ রয়েছে যেখানে এটি আসলে একটি বাইনারি। এটি অন্তর্ভুক্ত করার জন্য আমি আমার পোস্টিং সম্পাদনা করেছি।
গ্রেগর

আমি এই সমস্যাটি ঠিক করার অনুরূপ প্রতিবেদনও শুনেছি (যেমন ব্যবহার করা date -s)। দেখে মনে হচ্ছে ঠিক করার জন্য সিস্টেমটিকে স্লুইভ করার পরিবর্তে সময় নির্ধারণ করা প্রয়োজন (অফসেট ছোট হলে ডিফল্ট এনটিপিডি আচরণ)। আমি অনুমান করছি সময় নির্ধারণের কারণে কার্নেলের অভ্যন্তরীণ সময়-রক্ষণের যান্ত্রিকগুলি তাদের পুনরায় সেট করতে পারে।
প্যাট্রিক

4
আমার জাভা অ্যাপস সিপিইউ ব্যবহার খুব বেশি বেড়েছে (উচ্চমাত্রার সিপিইউ সময়টি সফ্টিরকিডিতে ব্যয় করে), এটি এটি ঠিক করে দিয়েছে।
হুবার্ট কারিও

16

http://my.opera.com/marcomarongiu/blog/2012/03/12/no-step-back ইঙ্গিত দেয় যে দেবিয়ান স্কিচ কার্নেল লিপ দ্বিতীয়টি পরিচালনা করবে না।

Comp.protocols.tim.ntp এ এই থ্রেডটিও আগ্রহের বিষয়: https://groups.google.com/forum/?fromgroups#!topic/comp.protocols.time.ntp/KSflIgjUdPE

এটি বলেছিল, লিপ সেকেন্ডটি এখনও ঘটেনি: 23:59:60 ইউটিসি

শেষ অবধি, https://access.redhat.com/ জ্ঞান / সূচনা / 15145 বলতে এই কথাটি রয়েছে: "যখন দ্বিতীয় লিপ ঘটে তখন কার্নেল সিস্টেম লগের জন্য একটি বার্তা প্রিন্ট করে। এই বার্তাটি মুদ্রণের সম্ভাবনা রয়েছে রেড হ্যাট এন্টারপ্রাইজ লিনাক্সের মধ্যে কার্নেল ক্রাশ হতে পারে। "


তবে ৩.২.২১ কার্নেলটি সম্ভবতঃ - ক্র্যাশ হওয়া মেশিনগুলির মধ্যে কমপক্ষে একটি চালাচ্ছিল
ব্রোন গন্ডওয়ানা

ব্রন নির্দেশিত সেই কয়েকটি মেশিনে আমরা আসলে একটি ফিক্স রোল করেছি যা আসন্ন লিপ দ্বিতীয়টি সঠিকভাবে পরিচালনা করবে।
Cosimo

অন্যরা পর্যালোচনা / পরামর্শের পরামর্শ / চেষ্টা করতে পারে তাই আপনি কি কোথাও স্থিরতা পোস্ট করতে পারেন?
কারগিগ

আমার কোনও ঠিক নেই ... আমি কেবল তথ্য সংগ্রহ করছি। সম্ভবত এটি মূল প্রশ্নের বিরুদ্ধে একটি মন্তব্য হিসাবে রাখা উচিত ছিল।
লুকা ফিলিপোজি

4
my.opera.com/marcomarongiu/blog/2012/06/01/… এ ঠিক করার বিষয়ে আরও বিশদ রয়েছে
ব্রোন গন্ডওয়ানা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.