私は、地理的に分散した約 10 台のリモート Linux コンピューターのネットワーク上でいくつかの実験を実行しています。
いくつかはクロックのずれがあると思われますが、一時的に見られます(たとえば、週に 1 回または月に 2 回)。
このようなクロック スキューを検出して定量化できるツールが存在するかどうか疑問に思っています。また、私が目撃している現象に対してクロック スキューという用語が適切かどうか、またはクロック同期と呼べるかどうかも疑問です。
答え1
時計を正しい時間に同期させようとしているのか、それとも同期せずにリアルタイム クロックが実際にどの程度正確であるかを判断しようとしているのか。
単に時刻を正確にしたいだけなら、システムが同期できるタイム サーバーの階層全体があり、通常は OS に組み込まれていますが、タイム サーバーを指定することもできます。また、1 つのシステムをタイム サーバーに同期し、その後、他のシステムが同期できるように独自のタイム サーバーを実行することもできます。
標準時刻に同期するだけでなく、前回の同期からのローカル コンピューターのドリフトも維持するプログラムを見たことがありますし、過去に使用したこともあります。インターネット接続が断続的だったときにこれを使用したことがあり、プログラムは予想されるドリフトの履歴を使用して時刻を修正していました。
通常、どちらの方法でも、修正が大きすぎるとエラーとみなされ、まったく修正が行われないことがあります。
うまくいけば、私はあなたの要点を完全に見逃していないでしょう。:)
答え2
これには NTP デーモンを使用します。
接続する独立した NTP サーバーの数を定義します (ntp.conf、server-directive)。サーバーは 3 台あれば十分ですが、それ以上であればさらに良いでしょう。
ネットワーク時間プロトコルは「不正な」時間ソースを選別します。を数時間ntpq -p
実行した後の出力を確認してください。ntpd
どのプライマリサーバーが選択されたか、どれが「良好」とみなされ、どれが「不良」とみなされるかが表示されます。出力には以下も含まれています。ジッターおよびレイテンシー(オフセット)。これらはおそらくあなたが求めている値です...
答え3
crony ユーティリティにはドリフト ファイルがあります。参照:http://chrony.tuxfamily.org/manual.html#構成オプションの概要
まだ自分でインストールしていないので、そのファイルの形式はわかりません。ドリフト情報を表示するコマンドはあります: chronyc sourcestats -v
最初は仮想マシンに crony をインストールする予定です。
このサイトは役に立ちそうです:http://www.markus-gattol.name/ws/time.html
答え4
参考までに、昨日、2 つの Linux システム間のスキューのレベルを自分で確認する必要がありました。ツールを探し始める前に、この非科学的な方法を使用しましたが、これで目的 (2 つのシステムからのログ出力のタイムスタンプの比較) に十分な結果が得られました。
- 各システムでPuttyセッションを起動し、並べて配置します。
両方のシステムで次のコマンドを実行します。
$ while true; do date +%H:%M:%S.%N; done
- スクリーンショットを撮り、各ウィンドウの最後のエントリを比較します。
困ったときに誰かの役に立つかもしれません!