<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          ntp導(dǎo)致的時鐘回?fù)?/h1>

          共 1093字,需瀏覽 3分鐘

           ·

          2021-05-27 23:32


          ntp導(dǎo)致的時鐘回?fù)?/h1>

          時鐘回?fù)?/h2>

          我們的服務(wù)器時間校準(zhǔn)一般是通過ntp進(jìn)程去校準(zhǔn)的。但由于校準(zhǔn)這個動作,會導(dǎo)致時鐘跳躍變化的現(xiàn)象。而這種情況里面,往往回?fù)茏钅芤鹞覀兊睦_,回?fù)苋缦滤? 

          會引起什么問題

          準(zhǔn)點調(diào)度任務(wù)的誤判

          假設(shè)有一個任務(wù)每天0點時候獲取昨天所有的數(shù)據(jù)進(jìn)行對賬,正常情況和時鐘回?fù)艿那闆r如下圖所示: 

          針對這種情況,筆者讓業(yè)務(wù)調(diào)整了調(diào)度觸發(fā)時間,不要精確在準(zhǔn)點,以避免此問題。

          唯一序列號(雪花算法)

          時鐘回?fù)艿那闆r也會影響到采用雪花算法這種對時間戳要求單調(diào)的算法。很明顯的,時間戳回調(diào)后,極易形成重復(fù)的序列號。
          對于這種情況我們采用預(yù)留序列號段,在檢測到這種情況后,將預(yù)留序列號分配出去,進(jìn)而解決這一問題。

          ntpd的時鐘回?fù)?跳變)條件

          事實上,ntpd本身還有另一種方案,即通過調(diào)整滴答頻率來讓我們的本地時鐘慢慢的和精確時間match。但是,如果本機(jī)時間和精確時間(從ntpd服務(wù)器獲取的時間)相差過大(> stepout threshold 128ms),則ntpd會直接采用跳躍變化的方式修正時間。代碼如下所示:

          ntp_loopfilter.c

          double clock_max = CLOCK_MAX; // .128也就是128ms

          int local_lock(...) {
          // 差距>128ms之后,選擇跳變
          if (fabs(fp_offset) > clock_max && clock_max > 0) {
          ......
          // 修正simclock.local_time
          step_systime(fp_offset);
          ......
          }
          }

          而在我們的線上,在/var/log/message中經(jīng)常能見到時鐘跳變的輸出。

          -x選項

          我們采用-x選項,可以將stepout threshold(128ms)提升到600s。這樣,不是太極端的情況,應(yīng)該都不會觸發(fā)到時鐘回?fù)?。但這會導(dǎo)致長時間時間戳不準(zhǔn)確的問題(畢竟,調(diào)整滴答頻率來慢慢match比較慢)。

          stepback stepback

          在高版本的ntpd中,還可以有stepback選項,如果設(shè)置為0的話,則不會回?fù)堋?/p>

          代碼寫累了,吃點碧根果吧:


          瀏覽 33
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報

          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲AV无码专区在线播放中文 | 美女激晴一级播放在线观看 | 免费视频播放一区二区 | 一区二区三区AV | 亚洲精品hd|