ponponpoko
@ponponpoko (Takeshi Sakiyama)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

【chrony】smoothtime パラメータについて

解決したいこと

chronyの設定ファイル(/etc/chrony.conf)には、「smoothtime max-freq max-wander [leaponly]」というパラメータを設定することができる。このパラメータは、主にNTPサーバーとして動作する設定ファイルに使用されます。設定することで、NTPサーバーを参照するクライアントがslewモードで動作できない場合でも、うるう秒に対応できるようになるとのこと。

しかし、公式の設定ドキュメントを参照しても、このパラメータの詳細な使い方を理解することができませんでした。(ネットで検索しても特に情報はない。)

どなたか、このパラメータの詳細な使い方がわかる方教えていただけますでしょうか。

引数「max-freq」が理解できません。
引数「max-wander」は、オフセットの修正速度の上限を設定する項目ということは分かりました。

【サンプル】
smoothtime 400 0.001024 leaponly

時間の進む速度を修正するパラメータ・・・?

何時間考えてもわかりませんでした・・・。

0

2Answer

時刻を補正する平滑化プロセスに使用するパラメタですね。
自分も理解できていませんが、下記サイトに少し詳しい説明があります。
(うるう秒の補正方法の説明の中で、smoothtimeのパラメタに触れています)

ppmという単位はparts per millionの略のようです。この「parts」が何を意味するのか?が、カギな気がします。

0Like

私は内容を理解できませんが、 chrony の smooth.c に以下の図解がありました。

  Time smoothing determines an offset that needs to be applied to the cooked
  time to make it smooth for external observers.  Observed offset and frequency
  change slowly and there are no discontinuities.  This can be used on an NTP
  server to make it easier for the clients to track the time and keep their
  clocks close together even when large offset or frequency corrections are
  applied to the server's clock (e.g. after being offline for longer time).

  Accumulated offset and frequency are smoothed out in three stages.  In the
  first stage, the frequency is changed at a constant rate (wander) up to a
  maximum, in the second stage the frequency stays at the maximum for as long
  as needed and in the third stage the frequency is brought back to zero.

              |
    max_freq  +-------/--------\-------------
              |      /|        |\
        freq  |     / |        | \
              |    /  |        |  \
              |   /   |        |   \
           0  +--/----+--------+----\--------
              | /     |        |    |    time
              |/      |        |    |

        stage     1       2      3

  Integral of this function is the smoothed out offset.  It's a continuous
  piecewise polynomial with two quadratic parts and one linear.

smooth.c の中では、設定ファイルから読み込まれた max-freq1e-6 を掛けて(ppm=百万分率で表された値を実数に変換しているものでしょう) static 変数 max_freq に格納されます。そこからある程度アルゴリズムが追えると思います。

0Like

Your answer might help someone💌