PTP4L および PHC2SYS システム・ロギングの説明

PTP4L および PHC2SYS システム・ロギングの説明

使っていますピアツーピア 4lそしてPHC4システムCentos 7.4サーバーの時計を中央PTPソースと同期させるサービス。これらのサービスは、以下のように定期的にシステムログ記録を作成します。ここにある各フィールドの意味と単位が何であるかを説明する文書が見つかりませんでした。どんな手がかりもありがとうございます!

11月14日 17:07:26 stg1 ptp4l: [718277.895] rms 74 最大99周波数 +8760 +/- 84 遅延 535 +/- 0
11月14日 17:07:27 stg1 phc2sys: [718278.105] phc オフセット -62 s2 周波数 +14460 遅延 2117

答え1

他のリンクから以下の説明を得ました。

この値はナノ秒単位です。

デフォルトオフセット値は、基本オフセットで測定されたオフセットをナノ秒単位で表します。

s0、s1、s2インジケータは、時計サーボのさまざまな状態(s0ロック解除、s1クロックステップ、s2ロック)を表示します。サーボがロックされ(s2)、設定ファイルでpi_offset_constオプションが負の値に設定されている場合(詳細はman 8 ptp4lを参照)、時計は段階的に進行しません(ゆっくり調整されます)。

freq値は、10億分の1(ppb)単位でクロックの周波数調整を表します。

パス遅延値は、マスターから送信された同期メッセージの予想遅延(ナノ秒)を示します。

ポート0は、ローカルPTP管理に使用されるUnixドメインソケットです。ポート 1 は eth0 インターフェイスです。

INITIALIZING、LISTENING、UNCALIBRATED、および SLAVE は、INITIALIZE、RS_SLAVE、および MASTER_CLOCK_SELECTED イベントで変更されるポート状態の例です。ポートの状態がUNCALIBRATEDからSLAVEに変わると、コンピュータはPTPマスタークロックと正常に同期されます。

答え2

ファイルを見ると、print.c「印刷」機能で次のコードが見つかりました。

if (use_syslog) {
    syslog(level, "[%ld.%03ld] %s%s%s",
           ts.tv_sec, ts.tv_nsec / 1000000,
           message_tag ? message_tag : "", message_tag ? " " : "",
           buf);
}

print.hより多くのマクロを定義するには、この機能を使用します。一部は使用されていないように見え、他のものは例には存在しないエラーに関連していますが、pr_infoある時点でclock.cこれらのログを記述できるようにマクロが呼び出されます。

if (!stats_get_result(s->delay, &delay_stats)) {
    pr_info("rms %4.0f max %4.0f "
        "freq %+6.0f +/- %3.0f "
        "delay %5.0f +/- %3.0f",
        offset_stats.rms, offset_stats.max_abs,
        freq_stats.mean, freq_stats.stddev,
        delay_stats.mean, delay_stats.stddev);
} else {
    pr_info("rms %4.0f max %4.0f "
        "freq %+6.0f +/- %3.0f",
        offset_stats.rms, offset_stats.max_abs,
        freq_stats.mean, freq_stats.stddev);
}

私はPTP4Lについてはよくわかりませんが、この変数名があなたに正しい方向を教えてくれることを願っています。詳しく知りたい場合は、ここgithubリポジトリです。

関連情報