GetSetによる
2005年01月21日 11時10分の掲載
集中より分散を部門より。
集中より分散を部門より。
okap 曰く、 "2chの「時刻合わせ総合スレッド」に、20日、「福岡大学のNTP屋」からの書き込みがあった。トラフィックの増大で非常に大変な状態にあるようだ。"(続く…)
"以下、原文から引用する。
ところで、皆さんへお願いですが、出来るだけ負荷を分散したいのです。タレコミ子も何を隠そう、NTPサーバと言えば福岡大と言うイメージがあった。これを機会にmfeed(http://www.jst.mfeed.ad.jp/)に切り替えようと思う。"
今や、clock.nc.fukuoka-u.ac.jpへのアクセスは毎秒900件ほどになります。
引き合いに出して申し訳ないのだけれども、東大のntp.nc.u-tokyo.ac.jpでも毎秒3,4件程度のトラフィックです。
サーバーとの時刻差を求めるのに(往路の伝送時間-復路の伝送時間)/2を観測誤差として補正している原理からして、遠方になるほど観測誤差が大きくなる傾向にあります。
候補となるNTPサーバのそれぞれについてtracerouteなどで遅延時間を求めます。
遅延時間が安定していて、時間が短いのが望ましいサーバです。
ついでに、tracerouteの途中にあるルータを ntpq -p などでチェックしてみます。
Ciscoのルータなどはntpをサポートしているので、案外多くのサーバを発見できます。
念のため ntpqや,ntpdate -q などでまともなサーバかどうかも確認しておきます。
YahooBBなどのISPのユーザは出来るだけISP内で提供しているNTPサーバを参照するようにお願いします。
何だか泣き言をいっているようで恥ずかしいのですが、ご協力をお願いします。
関連ストーリー
この議論は賞味期限が過ぎたので、保存されている。
新たにコメントを書くことはできない。
プロバイダ別 ntp サーバリスト (スコア:5, 参考になる)
プロバイダ別 ntp サーバリスト [infoseek.co.jp]
あと ntpd をローカルに動かしてる場合は
みたいに maxpoll を増やしておくと上位サーバの負荷が減ります。Re:プロバイダ別 ntp サーバリスト (スコア:1)
And now for something completely different...
親コメント
Linuxの時刻合わせの一つの方法 (スコア:3, 参考になる)
と文句を言われない ためには,各ホストのシステム・クロック
のずれが常に1秒未満になっているようにす るのが望ましい.
起動時, /etc/rc.d/rc.S によりハードウェア・クロック (RTC)
の時刻がシステム・クロックに読み込まれる (/sbin/hwclock --hctosys).
その後すぐに /etc/rc.d/rc.local 中で ntpdateによってシステム・
クロックを正確な時刻に調整し, それが成功したなら,
ハードウェア・クロックもその
正確な 時刻に合わせる (/sbin/hwclock --systohc) ことにする.
よって, ハードウェア・ クロックはだいたい合っていれば
よいことにする. 各ホストともともプロバイダ等の提供するntpサーバを使って,
起動時および1日1回, システム・クロックとハード ウェア・クロックとを
調節する. LANにわざわざntpサーバは立てない. adjtimex の --tick と
--frequency オプションを使ってシステム・クロックの進みまたは遅れ をなくしておけば,
1日1回程度のntpdateで十分に「ずれが1秒未満」の精度を達成 できる.
hwclock(8), adjtimex(8)の man pages や /etc/adjtime, /usr/include/sys/timex.h も一読されたい.
起動時に時刻をあわせるため /etc/rc.d/rc.local など
に次の数行を書く:
+++ ここから
# Configure the system clock with ntp.
# This can be changed if your system keeps GMT.
# ref. /etc/adjtime, hwclock(8), adjtimex(8), /usr/include/sys/timex.h
if [ -x /usr/bin/ntpdate -a -x /sbin/hwclock ]; then
/usr/bin/ntpdate -s ntp.example.net && /sbin/hwclock --systohc
fi
if [ -x /usr/local/bin/adjtimex ]; then
/usr/local/bin/adjtimex --tick 10000 --frequency 1
fi
+++ ここまで
crontab(5)に次の1行を追加して, 毎日20時20分 (あなたが
日常的にPCを使いはじ める少し前がよい) に時刻をあわせる.
20 20 * * * /usr/bin/ntpdate -s ntp.example.net && /sbin/hwclock --systohc
/var/log/messages に offset が記録されるはずなので,
それを元に --tick と --frequency の値を決める. たとえば
Aug 22 20:20:03 eringi ntpdate[1180]: step time server X.Y.Z.123 offset 1.626606 sec
Aug 23 20:20:03 eringi ntpdate[1490]: step time server X.Y.Z.123 offset 1.642889 sec
Aug 24 20:20:03 eringi ntpdate[6441]: step time server X.Y.Z.123 offset 1.665247 sec
なら1日平均1.645秒遅れるということなので, そのぶん
システム・クロック をスピードアップする. 1.645/8.64*6553600=1247763
だから,
# /usr/local/bin/adjtimex --tick 10000 --frequency 1247763
とする.
# /usr/local/bin/adjtimex --print
で設定を確認する. 11分ごとのハードウェア・クロックへの同期を行わない設定
((status & 64) が真) になっていることも確認しておく.
システム・クロックの スピードが十分調整されたら,
/etc/rc.d/rc.localにも同じadjtimexを書いておく.
この調整が面倒なら, 2~3時間ごとくらいに ntpdate
することにすれば「ずれが 1秒未満」の精度はたいてい達成できる.
ntpdateの頻度はログのoffsetの値を見て 決めるとよい.
love && peace && free_software
t-nissie
Re:Linuxの時刻合わせの一つの方法 (スコア:1)
clockadj
http://www.netfont.gr.jp/~matsu/clockadj/clockadj.html
こっちの方が、簡単かも。(でも、Linuxもってないので、試していない。)
えー、おれLinuxじゃないし、とかいうあなたは、clockspeed。
clockspeed
http://cr.yp.to/clockspeed.html
日本語で説明がほしい、という人は、UNIX USERの2002/7号の
djb特集をみるとよいかも。
Intelやsparcじゃない人は、ごめんね。(だったはず。)
#maxpollなんて知らんかった。17にしとこ。
もうそういう時代でしょ。オール電波。
親コメント
pool.ntp.orgって知られてない? (スコア:3, 参考になる)
地理的に近いサーバーに限定したいならとかを指定する事も可能。
毎回径路が変わるから厳密な時刻合わせには向かないけど、負荷分散という観点では、どんどん利用すべきだと思います。
解説はこちら [isc.org]。
Re:pool.ntp.orgって知られてない? (スコア:1)
ともあれ、nslookup pool.ntp.org で現在あてに出来る ntp サーバの一覧が手に入るのは有意義ですね。
この結果から ntp.conf 作れば良きに計らってくれると思います。
野良 ntp サーバもリストアップしてくれるとさらに良いのだけど。
どこかにないですかね ntp サーバを網羅的にエントリしたサイト。
親コメント
階層 (スコア:2, すばらしい洞察)
サイト内の他はaと同期をとるってのが重要でしょ。
プロバイダが提供してるなら、それより上に出ちゃイカンて
Re:階層 (スコア:2, 参考になる)
http://sonic64.hp.infoseek.co.jp/2004-12-02.html
[infoseek.co.jp]
を見ると、ntpサーバを用意しているISPって非常に
少ないですね。
本当にこれだけなんでしょうか。
# うちは asahi-net なので、ISP が公開しているのを
# 前から利用してます。
こういうのの管理って、Wikiが向いてる気がするけど、
どこかに適当な場所はないですかね。
親コメント
Re:階層 (スコア:1)
Windowsでは、デフォルトのNTPサーバーって決まってないんですかね? そういうのに詳しくない人は、電話で時報聞きながら合わせるのかな。MicrosoftがNTPサーバー用意してくれてたりしないのかな。
親コメント
Re:階層 (スコア:1)
まあ,初期設定だと一週間に一度しか見に行ってくれないんですが.
親コメント
Re:階層 (スコア:1, 参考になる)
time.windows.com
time.nist.gov
time-a.nist.gov
の三つがデフォルトで選択できるようになってますね。
でも、Windows標準のntpってあまり信用してません。
なぜか、気付くと1,2分ずれてたりするんで。
(こっちの環境が悪いだけかもしれませんが)
親コメント
Re:階層 (スコア:1)
一応、WindowsXPでは標準で「time.windows.com」が設定されており、しかも自動更新が最初から有効だった気がしますが。
#コンパネ「日付と時刻のプロパティ」→「インターネット時刻」か、タスクの時刻表示をダブルクリックするなどして確認
あと、ドメインに所属していると、ドメインサーバあたりと時刻同期をかけようとしたりするんでしたっけ?
#そのサーバの時刻設定がぼろぼろで、OS起動時に桜時計などで合わせていたのに、すぐに狂わされてしまった気が(^^;;;
タブレット中毒者。
親コメント
Re:階層 (スコア:1)
当方はfirewall内なので、siteが提供しているNTPサーバを上記のようにして利用しています。
親コメント
Re:階層 (スコア:1)
# ここんとこActiveDirectory触ってないけどID
---にょろ~ん
親コメント
Re:階層 (スコア:2, 参考になる)
レジストリをいじるしか変更する方法が無いようで、
http://www.atmarkit.co.jp/fwin2k/win2ktips/050nettime/nettime2.html
に方法が載ってます。
桜時計やAdjustPCを使った方が楽かもしれません。
いや、別に好きでやってるからいいけどさ・・・。
親コメント
Re:階層 (スコア:1)
で、桜時計の方はデフォルトが福岡大だったかも。違ったかな?
親コメント
Re:階層 (スコア:1)
親コメント
Re:そんな頻繁に合わせる必要があるのか? (スコア:1)
私の自宅PC(ASUS A7N8X-VM)の方は、30分で10秒ぐらいずれるので、
一日なら4分ぐらいずれることになります。
仕方ないので、桜時計で2分に一回補正してます。
最初、ntpで補正してるからって、PCの時計の正確さはあまり気にしてなかったのですが、
ある日、make がちゃんと通らなかったことがあって、
調べてみたら、おそらくそのタイミングで10秒ほど時間を戻されたせいらしいとわかりました。
で、1秒以上ずれないようにってことで、今の補正間隔に落ち着いてます。
職場で使ってるPC(ASUS A7S333)は、一日で2~3秒ぐらいしかずれないんですけどね。
親コメント
Re:そんな頻繁に合わせる必要があるのか? (スコア:1)
マシンをスタンバイ状態にするとずれるという噂も聞いたことありますね。真実は知りませんが…。
まぁ、常時起動しているルータでチェックさせて、それにぶらさがるPCなんかはそれを参照すると幸せになれるかと。
タブレット中毒者。
親コメント
Re:そんな頻繁に合わせる必要があるのか? (スコア:2, 興味深い)
2分に一回更新している通信相手は、その自宅サーバです。
ntpdの設定の方は、今回の記事を見て fukuoka-u から mfeed に変えました。
最初に設定したのが10年近く昔で、当時は他に選択肢が無かったんですよね。
> 自宅PCで一日4分が許容できない使い方ってなんですか?
すでに書いた通りですが、「一日に4分」が許容できないんじゃなくて、
「時刻修正された瞬間に何秒も時間が飛んでしまう」
のが問題なんです。
対策としては「時間が飛んでも問題ない時にまとめて修正する」か、「1秒以内の修正をマメに行う」のどちらかで、
私は後者を選んだ、と。
windows 用にも、ntpd みたいに、
・時刻を飛ばしたりせず、ちょっとずつ時刻修正してくれて、
・drift を計測して、同期がとれてなくても狂わない
時刻修正ソフトが欲しいです。
親コメント
Re:そんな頻繁に合わせる必要があるのか? (スコア:1)
>2分に一回更新している通信相手は、その自宅サーバです。
このサーバーの水晶は高い奴に交換したの?
していなければあまり意味が無いような気が。
親コメント
Re:そんな頻繁に合わせる必要があるのか? (スコア:1)
絶対的な精度が高くなくても、
相対的に安定している(ジッタがない)のであれば問題ないです。
ntpd は drift file を指定することで、時計の「進み具合」「遅れ具合」を計測して、それを元に時計の進み方を補正してくれます。
(たとえば、一日に5分進むことがわかったなら、時計の速さを一日あたり5分ぶん遅らせれば、正確に時を刻む時計になります。)
「昨日は一日に5分進んだけど、今日は一日に10分遅れた」みたいな不安定さを持つ時計だったら、こういう補正はできないですけどね。
親コメント
Re:そんな頻繁に合わせる必要があるのか? (スコア:1)
NT系列なら動くはずですが。
親コメント
Re:そんな頻繁に合わせる必要があるのか? (スコア:1, 参考になる)
> ・時刻を飛ばしたりせず、ちょっとずつ時刻修正してくれて、
> ・drift を計測して、同期がとれてなくても狂わない
> 時刻修正ソフトが欲しいです。
NT系なら標準で付いてるW32Timeサービスがまさにそれ。
Windows XPでコントロールパネルの日付と時刻から設定すると、ほかでも書かれているように一週間に一度SNTPで同期だけど、コマンドラインから
net time /setsntp:ntpサーバ
とすればntpdと同様の動作をする。
親コメント
Re:階層 (スコア:2, 参考になる)
起動時の最初にRTC(時計チップ)から現時刻を取得し、
以降、起動中はずっとタイマーを元に自前で計時しますから、
> 一ヶ月フルで使った時と
> 一度も電源を入れずに一ヶ月経過させた時
これは、ハードウェアが持っている
タイマーの精度とRTCの精度を比較していることになります。
温度はあまり関係ないですね。
親コメント
Re:階層 (スコア:1)
1時間に1回だったな?
RTCの精度は温度がそれなりに安定した環境であれば、キャリブレーションを行うことで日差数秒以内にすることは簡単です。
古いマザーボードにも実装されている物と同じ物を私の自作基板で使っていますが、
これをキャリブレーションして、電源切って放置すると月差30秒以内ぐらいでした。
電池内蔵のRTCでキャリブレーションができない物は、多分無いと思いますが
一般のPC用マザーボードで出荷前にキャリブレーションを行っているところは、ほとんどないんでしょうね。
エロいネタ強化月間
親コメント
Re:階層 (スコア:1)
インターネット時間って名前やめて欲しいですよね。
最初見たときビックリしました。これ↓かと思ってビックリしました。
スウォッチのインターネット時間 [swatch.com]
ほっときゃなおる
親コメント
Re:階層 (スコア:1)
プルダウンメニューのところを直接編集できませんか?
WinXPだけかな?
親コメント
Re:階層 (スコア:1)
net time /setsntp:NTPサーバー名
確認するには、
net time /querysntp
でOKです。
親コメント
DIONで使えました (スコア:1)
親コメント
Re:階層 (スコア:1)
昔 Panasonic Hi-HO に問い合わせた時は「そんなサービスはない」という寂しい返事が来ました。
親コメント
Re:DIONは (スコア:2, すばらしい洞察)
使えるのと使ってよいのとは別では?
ほっときゃなおる
親コメント
Re:階層 (スコア:1)
ADSLモデムは確実にプロバイダにするべきだと思います。
ですが、日や時間によってプロバイダごと入れ替わるノートだと
そういうわけにもいかないんですよねぇ。
そっちだけグローバルに提供してくれているmfeedにしてあります。
LAN内LAN稼働中
親コメント
Re:階層 (スコア:1)
モバイル->mfeed
タレコミ子がこれぐらいの考察をしている事を願う。
親コメント
Re:階層 (スコア:1)
ありがとうございます。
でも、誤字脱字の類が多すぎて、編集者が大変でしょう。
# AH-K3001V だからってのは言い訳にならんかのぉー。
過去、何回かタレコミさせてもらったので、
今後もがんばりたいです。ハイ。
親コメント
Re:階層 (スコア:1)
社内GWは、上位の ntp.so-net.ne.jp に問い合わせを行うようにしてあります。バックアップとして、nist.gov も指してますが。もちろん社内では、なるべく外のNTPサーバを参照しないよう、呼びかけています。
福大は昔から有名でしたが、私がいた場所のどこからもネットワーク的に遠く、なるべく指さないようにしていました。…いつのまにか悲鳴があがってたのか。
タレコミのスレ、読んでみます。
親コメント
自動的にプロバイダー指定の NTP サーバーを探しに行 (スコア:1)
# NTP は IP マルチキャスト(224.0.1.1) を使う運用方法があった気がするが、
# マルチキャストに関する知識ごと脳内ガーベージコレクターが回収していった。
Flatearther だけが良い fundamentalist である
親コメント
Re:自動的にプロバイダー指定の NTP サーバーを探しに (スコア:1)
#ただしYahoo!BBは除く
-- wildcard
親コメント
DNSで付加分散を (スコア:2, すばらしい洞察)
ペーストビン [windy.cx]
Re:DNSで付加分散を (スコア:1)
全てのサーバが完全に同期しているわけではないし、サーバとクライアントの間の通信遅延時間もそれぞれ違うと思うので。
親コメント
距離に応じて静的に (スコア:1)
ペーストビン [windy.cx]
親コメント
Re:DNSで付加分散を (スコア:1)
詳しくはRFCみるよろし。
end
親コメント
Re:DNSで付加分散を (スコア:1)
ただ、DNS名が同じだと、狂ったサーバが紛れ込んだときにクライアント側で避けようがないと思うのですけど、どうなんでしょうか?
親コメント
Re:DNSで付加分散を (スコア:1)
そういえば、他のサーバと比べてあまりに狂っているサーバの時刻情報は無視するんでしたね。
親コメント
たのみこむ (スコア:1, すばらしい洞察)
親コメント
Re:たのみこむ (スコア:2, 興味深い)
それだ!ぜひやってください>RINGの中の人
-- wildcard
親コメント
ntp.t.ring.gr.jp (スコア:1)
jp.pool.ntp.org は単純ラウンドロビンで、
ntp.t.ring.gr.jp はネットワーク距離を考慮してってことで。
ところで、time.windows.com はどうなってるんでしょう。
Windows XP はデフォルトでここに聞きに行くようになっているようですが、このサーバはちゃんと振り分けられている?
ペーストビン [windy.cx]
親コメント
jp.pool.ntp.orgを使おう (スコア:2, 参考になる)
でもDHCPのNTPサーバを指定するオプションがもっと一般的になるのが一番いいですね。ISP 側はとりあえずDHCPでNTPサーバも指定するようにしておいて、使うか使わないかはクライアントの自由、ってのが理想。
ペーストビン [windy.cx]
親コメント
トラフィックの分散 (スコア:2, 参考になる)
1) 正時 (00分), 30, 15 分などキリのよい時刻でなく半端な時刻に呼び出す
2) ntpdate を呼び出す前に sleep で数十秒の遅れを入れる
…などの対策をすればトラフィックの集中を幾分でも緩和できると思います。
福岡大学さんに限らず、他のサーバを使う場合もそうしたほうがよいかなと。
# Windows な方は適宜読み替えてください。
Re:トラフィックの分散 (スコア:1)
親コメント
Re:トラフィックの分散 (スコア:2, 参考になる)
FreeBSD 日本語マニュアル ntp.conf(5) [freebsd.org]より:
あと、preferを適宜設定するとよいかもしれない。そんなわけでntp.conf見直し中。
親コメント