අධික දෙවන දිනකදී ලිනක්ස් සේවාදායක බිඳවැටීම් අත්විඳින වෙනත් අයෙක් සිටීද?


363

* සටහන: ව්‍යාකූල කර්නල් නිසා ඔබේ සේවාදායකයට තවමත් ගැටළු තිබේ නම් සහ ඔබට නැවත ආරම්භ කළ නොහැකි නම් - ඔබේ පද්ධතියේ ස්ථාපනය කර ඇති gnu දිනය සමඟ යෝජනා කරන ලද සරලම විසඳුම නම්: දිනය -s දැන්. මෙය කර්නලයේ අභ්‍යන්තර "time_was_set" විචල්‍යය නැවත සකසනු ඇති අතර ජාවා සහ අනෙකුත් පරිශීලක අවකාශ මෙවලම් වල CPU හොගිං ෆියුටෙක්ස් ලූප නිවැරදි කරයි. මම මෙම විධානය මගේ පද්ධතිය මත පටවා ඇති අතර එය ටින් එකේ පවසන දේ කරන බව සනාථ කරයි *

POSTMORTEM

Anticlimax: මිය ගිය එකම දෙය මගේ VPN (openvpn) පොකුරට සබැඳිය, එබැවින් එය නැවත ස්ථාපිත කරන අතරතුර තත්පර කිහිපයක් සිත් ඇදගන්නා සුළු විය. අනෙක් සෑම දෙයක්ම හොඳයි, දෙවන පිම්ම පසු වූ පසු එන්ටීපී ආරම්භ කිරීම පිරිසිදුයි.

දවසේ මගේ සම්පූර්ණ අත්දැකීම 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 ක් තුළ ntpd -x භාවිතා කරමින් කාලය වෙනස් කිරීම. මෙය ඔබේම එන්ටීපී යටිතල පහසුකම් ක්‍රියාත්මක කිරීම සඳහා විකල්ප ආ aring ්‍රාණය කිරීමේ ක්‍රමයකි.


අද, 2012 ජූනි 30 වන සෙනසුරාදා - GMT දිනය ආරම්භ වූ වහාම ආරම්භ වේ. විවිධ කණ්ඩායම් විසින් කළමනාකරණය කර ඇති පරිදි විවිධ දත්ත සමුදායන්හි අපට අතලොස්සක් සේවාදායකයන් ඇත - සියල්ලම අඳුරු වේ - පිං වලට ප්‍රතිචාර නොදක්වයි, තිරය හිස් ය.

ඒවා සියල්ලම ඩෙබියන් මිරිකීම ක්‍රියාත්මක කරයි - කොටස් කර්නලයේ සිට අභිරුචි 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 වින්‍යාස කර ඇති බව කියනු ලැබේ, නමුත් kdump අවුලුවන තරමට ඔවුන් මිය ගියේය - තවද ඔවුන්ට කොන්සෝල හිස් කිරීම සක්‍රිය කර ඇත. මම දැන් කොන්සෝලය හිස් කිරීම අක්‍රීය කර ඇත, එබැවින් ඇඟිලි තරණය කර ඊළඟ බිඳවැටීමෙන් පසුව මට තවත් තොරතුරු ලැබෙනු ඇත.

එය පොදු නූලක්ද නැතිනම් "අප පමණක්ද" යන්න දැන ගැනීමට අවශ්‍යය. ඒවා විවිධ කාලවලදී මිලදී ගත් සහ විවිධ පරිපාලකයින් විසින් මෙහෙයවන විවිධ දත්ත සමුදායන්හි විවිධ ඒකක වීම ඇත්තෙන්ම අමුතුයි (මම FastMail.FM ඒවා ධාවනය කරමි) ... දැන් විවිධ විකුණුම්කරුවන්ගේ දෘඩාංග පවා තිබේ. බිඳ වැටුණු බොහෝ යන්ත්‍ර සති / මාස ගණනක් තිස්සේ පැවතුන අතර ඒවා 3.1 හෝ 3.2 ශ්‍රේණි කර්නල් ධාවනය කර ඇත.

නවතම බිඳ වැටීම 3.2.21 ධාවනය වන පැය 6 ක් පමණ වූ යන්ත්‍රයකි.

වැඩකරුවා

හරි මිනිස්සු, මෙන්න මම ඒ වටා වැඩ කළ ආකාරය.

  1. අක්‍රීය ntp: /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
මෙය වාර්තා කිරීම ගැන ස්තූතියි! මම දැන් මගේ සේවාදායකයන් දෙස ඉතා සමීපව බලා සිටිමි.
Janne Pikkarainen

5
LKML නූලෙන් ඇඟවෙන්නේ එය date -s "`date`"උපකාරී වන බවයි - එය නිසැකවම මට උදව් විය.
පොයින්ටි

Answers:


318

මෙය සිදුවන්නේ සජීවී අගුලක් නිසා ntpd විසින් adjtimex (2) අමතා කර්නලයට පිම්ම තත්පරයට ඇතුළු කරන ලෙස පවසමිනි. Lkml පළ කිරීම බලන්න http://lkml.indiana.edu/hypermail/linux/kernel/1203.1/04598.html

Red Hat ද ඔවුන්ගේ KB ලිපිය යාවත්කාලීන කළ යුතුය. https://access.redhat.com/knowledge/articles/15145

යාවත්කාලීන කිරීම: Red Hat හි දෙවන KB ලිපියක් මෙහි ඇත: https://access.redhat.com/knowledge/solutions/154713 - පෙර ලිපිය කලින් සම්බන්ධ නොවූ ගැටළුවක් සඳහා ය

වැඩ කිරීම යනු ntpd ක්‍රියා විරහිත කිරීමයි. Ntpd දැනටමත් adjtimex (2) ඇමතුම නිකුත් කර ඇත්නම්, ඔබට ntpd අක්‍රීය කර 100% ආරක්ෂිත වීමට නැවත පණගැන්විය යුතුය.

මෙය RHEL 6 ට බලපාන අතර අළුත් කර්නල් ධාවනය වන අනෙකුත් ඩිස්ට්‍රෝ (දළ වශයෙන් 2.6.26 ට වඩා අළුත්), නමුත් RHEL 5 නොවේ.

පිම්ම තත්පරයට සැබවින්ම සිදුවීමට පෙර මෙය සිදුවීමට හේතුව නම් , මධ්‍යම රාත්‍රියේදී පිම්ම දෙවන වරට හැසිරවීමට ntpd මඟින් කර්නලයට ඉඩ ලබා දීමයි, නමුත් මධ්‍යම රාත්‍රියට පෙර දෙවන පිම්ම ඇතුල් කිරීමට කර්නලයට අනතුරු ඇඟවීම අවශ්‍ය වේ. එනිසා පිම්ම තත්පරයට දිවා කාලයේදී යම් වේලාවක adjtimex (2) අමතයි, එම අවස්ථාවේදී මෙම දෝෂය අවුලුවන.

ඔබ adjtimex (8) ස්ථාපනය කර ඇත්නම්, 16 වන ධජය සකසා තිබේද යන්න තීරණය කිරීමට ඔබට මෙම ස්ක්‍රිප්ට් භාවිතා කළ හැකිය. ධජය 16 යනු “පිම්ම දෙවනුව ඇතුල් කිරීම”:

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

යාවත්කාලීන කිරීම:

Red Hat ඔවුන්ගේ KB ලිපිය යාවත්කාලීන කර ඇත: "NTP පිම්ම තත්පර නිවේදනය ලැබීමේදී එන්එම්අයි වොච්ඩෝග් එල්ලා වැටීමක් හඳුනා ගැනීමට හේතු වන දන්නා ගැටළුවක් නිසා RHEL 6 ගනුදෙනුකරුවන්ට බලපෑම් ඇතිවිය හැකිය. මෙම ගැටළුව කාලෝචිත ආකාරයකින් විසඳනු ලැබේ. පිම්ම තත්පර නිවේදනය සහ මෙම ගැටළුව අත්විඳ නැති නිසා ඒවා තවදුරටත් බලපෑමට ලක් නොවේ.

යාවත්කාලීන කිරීම: ඉහත භාෂාව Red Hat ලිපියෙන් ඉවත් කරන ලදි; adjtimex (2) බිඳ වැටීමේ ගැටලුව විස්තර කරමින් දෙවන KB විසඳුමක් එකතු කරන ලදි: https://access.redhat.com/knowledge/solutions/154713

කෙසේ වෙතත්, අයිබීඑම් ඉංජිනේරු ජෝන් ස්ටුල්ට්ස් විසින් එල්කේඑම්එල් පෝස්ට් එකේ කේත වෙනස් කිරීම සටහන් කරන්නේ පිම්ම තත්පරයට සත්‍ය වශයෙන්ම යොදන විට ද අවහිරයක් ඇති විය හැකි බැවින් එන්ටීපීඩී අක්‍රීය කිරීමෙන් පසු ඇඩ්ටයිමෙක්ස් (8) නැවත ආරම්භ කිරීමෙන් හෝ පිම්ම දෙවනුව අක්‍රීය කිරීමට ඔබට අවශ්‍ය විය හැකිය.

අවසාන යාවත්කාලීන කිරීම:

හොඳයි, මම කර්නල් දේව් නොවේ, නමුත් මම නැවත මෙහි ජෝන් ස්ටුල්ට්ස්ගේ පැච් සමාලෝචනය කළෙමි: https://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git; a = commit; h = 6b43ae8a619d17c4935c3320d2ef9e92bdeed05d

මම මේ වතාවේ එය නිවැරදිව කියවනවා නම්, පිම්ම තත්පරයට යොදන විට තවත් අවහිරයක් ඇතිවීම වැරදිය. එය ඔවුන්ගේ කේබී ප්‍රවේශය මත පදනම්ව Red Hat ගේ මතය ද බව පෙනේ. කෙසේ වෙතත්, ඔබ ntpd අක්‍රීය කර ඇත්නම්, එය තවත් විනාඩි 10 ක් අක්‍රීය කර තබන්න, එවිට ntpd adjtimex (2) අමතන විට ඔබ අවහිරයට පත් නොවනු ඇත.

තවත් දෝෂ තිබේදැයි අපි ඉක්මනින් සොයා බලමු :)

POST-LEAP දෙවන යාවත්කාලීන කිරීම:

මම පසුගිය පැය කිහිපය ගත කළේ ntpd සහ pre-patch (දෝෂ සහිත) කර්නල් කේතය හරහා වන අතර, මම මෙහි ඉතා වැරදියි අතර, මම සිතන්නේ කුමක්දැයි පැහැදිලි කිරීමට උත්සාහ කරමි:

පළමුව, ntpd සෑම විටම adjtimex (2) අමතයි. එය මෙය කරන්නේ එහි "ඔරලෝසු ලූප් ෆිල්ටරයේ" කොටසක් වන අතර එය ntp_loopfilter.c හි local_clock හි අර්ථ දක්වා ඇත. ඔබට එම කේතය මෙහි දැකිය හැකිය: http://www.opensource.apple.com/source/ntp/ntp-70/ntpd/ntp_loopfilter.c (ntp වෙළුම 4.2.6 සිට).

ඔරලෝසු ලූප් ෆිල්ටරය බොහෝ විට ක්‍රියාත්මක වේ - එය එන්ටීපීඩී එහි උඩුමහලේ සේවාදායකයන් ඡන්දය දෙන සෑම අවස්ථාවකම ක්‍රියාත්මක වන අතර පෙරනිමියෙන් සෑම මිනිත්තු 17 ක් හෝ ඊට වැඩි වේ. ඔරලෝසු ලූප් ෆිල්ටරයේ අදාළ බිට්:

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

ඊළගට:

ntp_adjtime(&ntv)

වෙනත් වචන වලින් කිවහොත්, තත්පරයට පිම්මක් ඇති දිනවල, ntpd "STA_INS" ධජය සකසා adjtimex (2) අමතයි (එහි අතේ ගෙන යා හැකි-එතීම හරහා).

එම පද්ධති ඇමතුම කර්නලය වෙතට ගමන් කරයි. අදාළ කර්නල් කේතය මෙන්න: https://github.com/mirrors/linux/blob/a078c6d0e6288fad6d83fb6d5edd91ddb7b6ab33/kernel/time/ntp.c

කර්නල් කෝඩ්පාත් දළ වශයෙන් මෙයයි:

  • 663 වන පේළිය - do_adjtimex චර්යාවේ ආරම්භය.
  • පේළිය 691 - පවතින ඕනෑම පිම්ම-තත්පර ටයිමරයක් අවලංගු කරන්න.
  • 709 වන පේළිය - ntp_lock spinlock අල්ලා ගන්න (මෙම අගුල සිදුවිය හැකි සජීවී බිඳවැටීමට සම්බන්ධ වේ)
  • 724 වන පේළිය - අමතන්න process_adjtimex_modes.
  • පේළිය 616 - ඇමතුම් ක්‍රියාවලිය_අජ්_ස්ටැටස්.
  • පේළිය 590 - adjtimex (2) ඇමතුමෙහි ඇති කොඩි මත පදනම්ව time_status ගෝලීය විචල්‍යය සකසන්න
  • පේළිය 592 - time_state ගෝලීය විචල්‍යය පරීක්ෂා කරන්න. බොහෝ අවස්ථාවලදී, ntp_start_leap_timer අමතන්න.
  • පේළිය 554 - time_status ගෝලීය විචල්‍යය පරීක්ෂා කරන්න. STA_INS සකසනු ඇත, එබැවින් කාල වේලාව TIME_INS ලෙස සකසා පිම්ම දෙවන ටයිමරය ආරම්භ කිරීම සඳහා hrtimer_start (තවත් කර්නල් ශ්‍රිතයක්) අමතන්න. ටයිමරයක් නිර්මාණය කිරීමේ ක්‍රියාවලියේදී, මෙම කේතය xtime_lock අල්ලා ගනී. වෙනත් CPU එකක් දැනටමත් xtime_lock සහ ntp_lock අල්ලාගෙන සිටියදී මෙය සිදුවන්නේ නම්, කර්නලය සජීවී අගුළු දමයි. ජෝන් ස්ටුල්ට්ස් පැච් ලිවූයේ හර්ටිමර් භාවිතා නොකිරීමටයි. අද සෑම දෙනාටම කරදර ඇති කළේ මෙයයි.
  • පේළිය 598 - ntp_start_leap_timer ඇත්ත වශයෙන්ම පිම්ම ටයිමරයක් ආරම්භ නොකළේ නම්, වේලාව_ස්ථානය TIME_OK ලෙස සකසන්න
  • 751 වන පේළිය - කර්නලය සජීවීව නොපවතින බව උපකල්පනය කර, තොගය නිරුපද්‍රිතව ඇති අතර ntp_lock spinlock මුදා හරිනු ලැබේ.

මෙහි රසවත් දේවල් කිහිපයක් තිබේ.

පළමුවෙන්ම, 691 වන පේළිය ඇඩ්ටයිටෙක්ස් (2) කැඳවන සෑම අවස්ථාවකම පවතින ටයිමරය අවලංගු කරයි. 554 එම ටයිමරය නැවත නිර්මාණය කරයි. මෙයින් අදහස් කරන්නේ ntpd සිය ඔරලෝසු ලූප් ෆිල්ටරය ධාවනය කරන සෑම අවස්ථාවකම දෝෂ සහිත කේතය ක්‍රියාත්මක කරන බවයි.

ඒ නිසා මම විශ්වාස කරනවා රෙඩ් හැට් වැරදියි කියලා කිව්වහම වරක් එන්පීපීඩී පිම්ම දෙවන ධජය සකසා ගත්තොත් පද්ධතිය බිඳ වැටෙන්නේ නැහැ. පිම්ම තත්පරයට පෙර පැය 24 ක කාලය තුළ සෑම මිනිත්තු 17 කට වරක් (හෝ ඊට වැඩි) සජීවීව ක්‍රියා කිරීමට ntpd ධාවනය වන සෑම පද්ධතියකටම හැකියාවක් ඇතැයි මම විශ්වාස කරමි. බොහෝ පද්ධති බිඳවැටීමට හේතුවද මෙය පැහැදිලි කරනු ඇතැයි මම විශ්වාස කරමි; පැයකට අවස්ථා 3 ක් සමඟ සසඳන විට එක් වරකදී අනතුරට පත්වීමේ අවස්ථාව අඩු වේ.

යාවත්කාලීන කිරීම: https://access.redhat.com/knowledge/solutions/154713 හි Red Hat හි KB විසඳුමේදී , Red Hat ඉංජිනේරුවන් එකම නිගමනයකට පැමිණියේය (ntpd ධාවනය කිරීම දෝෂ සහිත කේතයට අඛණ්ඩව පහර දෙන බව). ඇත්තෙන්ම ඔවුන් මා එසේ කිරීමට පැය කිහිපයකට පෙර එසේ කළා. මෙම විසඳුම https://access.redhat.com/knowledge/articles/15145 හි ප්‍රධාන ලිපියට සම්බන්ධ නොවීය , එබැවින් මම මේ දක්වා එය දුටුවේ නැත.

දෙවනුව, පටවන ලද පද්ධති බිඳ වැටීමට වැඩි ඉඩක් ඇත්තේ මන්දැයි මෙයින් පැහැදිලි වේ. පටවා ඇති පද්ධති වැඩි බාධා කිරීම් හසුරුවනු ඇති අතර එමඟින් "do_tick" කර්නල් ක්‍රියාකාරිත්වය බොහෝ විට කැඳවනු ඇත, මෙම කේතය ටයිමරය නිර්මාණය කරන අතරතුර ntp_lock ක්‍රියාත්මක කිරීමට සහ අල්ලා ගැනීමට වැඩි අවස්ථාවක් ලබා දෙයි.

තෙවනුව, පිම්ම තත්පරයට සැබවින්ම සිදුවන විට පද්ධතිය බිඳ වැටීමේ අවස්ථාවක් තිබේද? මම නිශ්චිතවම නොදනිමි, නමුත් සමහර විට ඔව්, මන්දයත් පිම්ම තත්පරයට ගැලපීම සිදු කරන ටයිමරය (ntp_leap_second, 388 වන පේළියේ) ද ntp_lock spinlock අල්ලාගෙන hrtimer_add_expires_ns වෙත ඇමතුමක් ලබා දී ඇති බැවිනි. එම ඇමතුමට සජීවී අගුලක් ඇති කළ හැකිදැයි මම නොදනිමි, නමුත් එය කළ නොහැකි බවක් නොපෙනේ.

අවසාන වශයෙන්, පිම්ම තත්පර ධාවනය වූ පසු පිම්ම දෙවන ධජය අක්‍රීය කිරීමට හේතුව කුමක්ද? Ntpd හි ඇති පිළිතුර මධ්‍යම රාත්‍රියෙන් පසුව යම් වේලාවක පිම්ම දෙවන ධජය සැකසීම නවත්වයි. ධජය සකසා නොමැති බැවින්, 554 වන පේළියේ චෙක්පත සත්‍ය නොවන අතර ටයිමරයක් සාදනු නොලැබේ, සහ 598 වන පේළිය time_state ගෝලීය විචල්‍යය TIME_OK වෙත නැවත සකසනු ඇත. පිම්ම තත්පරයට පසුව ඔබ ධජය adjtimex (8) සමඟ පරීක්ෂා කළහොත්, පිම්ම-දෙවන ධජ කට්ටලය ඔබට තවමත් පෙනෙන්නේ මන්ද යන්න මෙයින් පැහැදිලි වේ.

කෙටියෙන් කිවහොත්, අද දවසේ හොඳම උපදෙස් මම සියල්ලට පසු දුන් පළමු අවස්ථාව ලෙස පෙනේ: ntpd අක්‍රීය කරන්න, සහ පිම්ම දෙවන ධජය අක්‍රීය කරන්න.

සහ අවසාන සිතුවිලි කිහිපයක්:

  • ලිනක්ස් වෙළෙන්දන් කිසිවෙකු ජෝන් ස්ටුල්ට්ස්ගේ පැච් එක දැක එය ඔවුන්ගේ කර්නල් වලට යොදන ලදි :(
  • මෙය අවශ්‍ය වූ සමහර වෙළෙන්දන් ගැන ජෝන් ස්ටුල්ස් අනතුරු ඇඟවූයේ නැත්තේ ඇයි? සමහර විට සජීවී ශබ්දය අවලංගු කිරීමට තරම් අඩු බවක් පෙනෙන්නට තිබුණි.
  • පිම්ම තත්පරයට යොදන විට ජාවා ක්‍රියාවලි අගුලු දැමීම හෝ භ්‍රමණය වීම පිළිබඳ වාර්තා මා අසා ඇත. සමහර විට අපි ගූගල්ගේ නායකත්වය අනුගමනය කර අපගේ පද්ධති වෙත පිම්ම තත්පරයට යොදන ආකාරය ගැන නැවත සිතා බැලිය යුතුය: 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 වලින් යමක් මුද්‍රණය කරයිද? Ntpd ක්‍රියා විරහිත කිරීමට පෙර බිඳ වැටී නැති පද්ධතියක් බිඳ වැටීමට ඇති අවස්ථාව කුමක්ද?
හියුබට් කාරියෝ

3
හියුබට්: "ඇඩ්ටයිමෙක්ස්" ධාවනය කරන්න (එය සාමාන්‍යයෙන් වෙන වෙනම ඇසුරුම් කර ඇත) දෙවන පිම්ම පෙන්නුම් කිරීමට 16 වන ධජය සොයන්න.
ඩොමිනික් ක්ලීන්

22
ඔබ නියෝජිත තොප්පියට වෛර කරන්න යනවා.
වෙස්ලි

26
Es වෙස්ලි ඩේවිඩ්: කරදර නොවන්න, මධ්‍යම රාත්‍රියේ යූටීසී හි නියෝජිත තොප්පිය නැවත සකසනු ඇත. සමහරවිට.
mmyers

33

මෙය අපට තදින්ම බලපෑවා. අපගේ බොහෝ ධාරකයන් නැවත ආරම්භ කිරීමෙන් පසුව, සත්කාරක නැවත ආරම්භ කිරීමකින් තොරව පහත සඳහන් දෑ අපහසුතාවයට පත්වන සරල හා සම්පූර්ණයෙන්ම effective ලදායී විය:

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

අවශ්‍ය වන්නේ පද්ධති ඔරලෝසුව නැවත සකස් කිරීමයි. ෂීෂ්. පැය හයකට පෙර මෙය දැන ගැනීමට මා ලබා දුන් දේ.


8
date -s "`date`"මා වෙනුවෙන් වැඩ කළා.
පොයින්ටි

E ඩීන්බී: මම පාන්දර 3 ට යූටීසී හි පළ කළේ ඔරලෝසුව නැවත සැකසීම උපක්‍රමයක් කරන බවයි, අවාසනාවකට එය නවීකරණය වීමට ටික කාලයක් ගත විය. අපි සේවාදායකයන් නැවත පණගැන්වීම ආරම්භ කළෙමු
ග්‍රෙගර්

24

කර්නලයේ කාල තත්ව ක්ෂේත්‍රයෙහි දෙවන පිම්ම ඉවත් කරන සරල C වැඩසටහනක්:

#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කර root ලෙස ධාවනය කරන්න.

ඔබට එය ක්‍රියාත්මක කිරීමට පෙර ntpd නැවැත්වීමට අවශ්‍ය වනු ඇති අතර, පිම්මෙන් පසුව ntpd නැවත ආරම්භ කරන්න.


(void) argc;ඉටු කරන්නේ කුමක්ද? භාවිතයට නොගත් විචල්‍යය සඳහා අනතුරු ඇඟවීම නිහ c කරන්නද? භාවිතා int main()කිරීම එකම දෙයක් නොවේද? පදිකයෙකු වීමට උත්සාහ නොකිරීම, මම අවංකවම කුතුහලයෙන් සිටිමි.
gparent

18

පශ්චාත් මරණ පරීක්ෂණයෙන් පෙනේ ./lsec බලපෑමක් නැත.

අප දකින්නේ CPU අනුභව කරන බොහෝ මෘදු ක්‍රියාදාමයන්ය (සාමාන්‍යයෙන් ජාවා ක්‍රියාවලි පැටවීමට රේඛීය වේ)

දැනටමත් ntp විසින් යොදන ලද වේගවත් තත්පර සමඟ POSTMORTEM නිවැරදි කිරීමට ක්‍රියා කරන්නේ කුමක්ද:

නිකුතුවක් කිරීමට එය ප්‍රමාණවත් බව පෙනේ:

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

මෙය ntpd නැවත ආරම්භ කිරීම හෝ නැවත ආරම්භ කිරීමකින් තොරව බර අඩු කළ යුතුය. විකල්පයක් ලෙස ඔබට නිකුත් කළ හැකිය:

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

ඇයි sntp -sසහ නැත්තේ ntpdate?
දෝෂ සංවර්ධක

ntpdate යනු මෙහි sntp කිරීම සඳහා වූ එතුමකි, ntpdate ද භාවිතා කිරීම හොඳ බව සහතිකයි.
ග්‍රෙගර්

මිරිකීම සඳහා ntpdate පැකේජයක් ඇත, එය ඇත්ත වශයෙන්ම ද්විමය වේ. මෙය ඇතුළත් කිරීම සඳහා මම මගේ පළ කිරීම සංස්කරණය කළෙමි.
ග්‍රෙගර්

මෙම ගැටළුව විසඳීම පිළිබඳ සමාන වාර්තා මා අසා ඇත (භාවිතා කිරීම වැනි) date -s ). එය නිවැරදි කිරීම සඳහා පද්ධතියේ වේලාව සැකසීම වෙනුවට එය සකස් කිරීම අවශ්‍ය බව පෙනේ (ඕෆ්සෙට් කුඩා වන විට සුපුරුදු ntpd හැසිරීම). මම අනුමාන කරන්නේ වේලාව සැකසීම කර්නලයේ අභ්‍යන්තර කාලය රඳවා ගැනීමේ යාන්ත්‍රිකයන් නැවත සැකසීමට හේතු වන බවයි.
පැට්‍රික්

4
මගේ ජාවා යෙදුම් CPU භාවිතය ද ඉහළ ගොස් ඇත (මෘදුකාංගයේ වැඩි CPU කාලයක් වැය කරමින්), මෙය නිවැරදි කළේය.
හියුබට් කාරියෝ

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/knowledge/articles/15145 ට පහත සඳහන් දේ ඇත: "දෙවන පිම්ම සිදු වූ විට, කර්නලය පද්ධති ලොගයට පණිවිඩයක් මුද්‍රණය කරයි. මෙම පණිවිඩය මුද්‍රණය කිරීමට අවස්ථාවක් තිබේ Red Hat Enterprise Linux හි කර්නලය බිඳ වැටීමට හේතු විය හැක.


නමුත් 3.2.21 කර්නලය, අනුමාන වශයෙන් - බිඳ වැටුණු යන්ත්‍රවලින් එකක්වත් ක්‍රියාත්මක විය යුතුය
බ්‍රොන් ගොන්ඩ්වානා

බ්‍රොන් ඇඟවූ එම යන්ත්‍ර කිහිපයකම, අපි ඇත්ත වශයෙන්ම ඉදිරියට එන පිම්ම තත්පරයට නිවැරදිව හැසිරවිය යුතු විසඳුමක් සකස් කර ඇත්තෙමු.
කොසිමෝ

ඔබට යම් තැනක නිවැරදි කිරීම පළ කළ හැකි අතර එවිට අනෙක් අයට අදහස් සමාලෝචනය කිරීමට / යෝජනා කිරීමට / උත්සාහ කිරීමට හැකිද?
kargig

මට විසඳුමක් නැත ... මම තොරතුරු රැස්කරමින් සිටිමි. සමහර විට මෙය මුල් ප්‍රශ්නයට එරෙහි අදහසක් ලෙස ඉදිරිපත් කළ යුතුව තිබුණි.
ලූකා ෆිලිපොසි

4
my.opera.com/marcomarongiu/blog/2012/06/01/… එය නිවැරදි කිරීම පිළිබඳ වැඩි විස්තර අඩංගු වේ
බ්‍රොන් ගොන්ඩ්වානා
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.