2015年06月02日

7月1日のうるう秒対策

うるう秒とは?

協定世界時(UTC)と地球の自転とのズレを調整するために増減させる時間のことで、今年は日本時間の7月1日8時59分59秒と9時00分00秒の間に8時59分60秒という時間が1秒挿入されます。うるう年の小さいバージョンのようなものですが、実施するタイミングに規則性はないようです。なお、うるう秒は、地球の自転速度が徐々に遅くなっているため、その遅延を調整するものという説があるそうですが、これは誤解だそうです。

うるう秒による影響

ほとんどのPCや携帯電話などの通信機器の時刻はインターネットを介して自動的に同期されるので、いずれは時間のズレは解消されます。しかしながら、すべてのアプリが正常に動作してくれるとは言い切れませんし、時間計測の正確性を要するアプリなどは多少なりとも影響を受けるかもしれません。不安な人や1秒のズレがどうしても気持ち悪いという人は、7月1日の9時前に端末をシャットダウン、9時を過ぎたら起動して手動で時刻を同期するのがよいでしょう。

サーバーの管理者は注意が必要です。前回うるう秒が実施された2012年7月1日には、多くのサービスで障害が発生しました。Linuxカーネルの一部のバージョンでうるう秒挿入後にCPU使用率が上昇するといった事象や、分散型データベースのCassandraやHadoopでうるう秒による障害発生が報告されています。mixi、foursquare、Yelp、LinkedIn、Gawker、StumbleUpon といったWeb サービスでもうるう秒による影響を受けたようです。

Linuxサーバーでの対策

対策はすでに述べられていますので、以下のサイトを参考にして下さい。
7/1の閏秒を迎えるにあたってLinuxでは何をすべきか?
【うるう秒】あなたのサーバは大丈夫?
【RHEL】這いよる閏秒 7月1日9:00(JST)の挙動

簡潔にまとめると
・tzdataパッケージを最新に更新
・Linuxカーネルをアップデート
・ntpdのパッケージを最新に更新
・ntpdに-x オプション(slew モード)をつけて起動
しておけばよいそうです。

Googleのサーバーでは

Googleでは、うるう秒を1秒挿入するのではなく、「ぼかし(smear)」という手法で対応するそうです。うるう秒の前後20時間をぼかし期間として、その間サーバーのシステムクロックを少しずつ遅らせ、ぼかし期間が終わった頃には1秒が加えられた状態になります。なるほど、その方がリスクは少なそうですね。

Google Cloud Platform環境では、Google Compute Engineの仮想マシンで外部のNTPサービスを使っている場合のみ、うるう秒の影響を受けることになります。デフォルトのNTPサービス(metadata.google.internal)かシステムクロックを使っていればGoogleのぼかし処理が適用されるので、特に対策は必要ありません。外部NTPサービスを使っている場合は、うるう秒の時期だけでもデフォルトのNTPソースに戻すことが推奨されています。

参考:
Google Cloud Platform Japan 公式ブログ
うるう秒がやって来る!〜 6 月 30 日の ” 1 秒”に備えよう〜

ほんの1秒のズレが多大な損害をもたらす危険性があるとは、考えるだけで恐ろしいですね。
サーバー管理者は事前の対策をしっかりとし、7月1日の9時を過ぎたらひと通り確認しておきましょう。

※この記事の一部は私の主観で判断しているところがあります。うるう秒対策によるトラブルなどにつきましては一切補償いたしません。また、誤解などありましたらご指摘ください。
posted by mukai at 14:58| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。