「うるう秒」挿入実施に伴うサービスへの影響について
2012年07月04日 お客様各位 さくらインターネット株式会社 平素よりさくらインターネットに格別のご愛顧を賜り、誠にありがとうございます。 先日、2012年7月1日に「うるう秒」が実施されました。 ▼「うるう秒」挿入のお知らせ (独立行政法人 情報通信研究機構) http://www.nict.go.jp/press/2012/01/31-1.html これにより、さまざまなシステムにおけるトラブル等が報告されておりますが、当社の サービスにおける影響についてご報告いたします。 なお、お客様のサーバにおける対応手順につきましては、次の情報をご確認ください。 ▼さくらのVPS CPUの負荷上昇について http://support.sakura.ad.jp/mainte/newsentry.php?id=7771 ▼さくらのクラウド CPUの負荷上昇について http://cloud-news.sakura.ad.jp/2012/07/03/leaptime/ 1. 影響について うるう秒の扱いにおいて、一部のLinuxカーネルに不具合があり、CPUの使用率上昇や、 システムのpanicなどの影響があることが報告されています。 当社においても、うるう秒実施前日の6/30および、うるう秒が実施された7月1日に、 当該カーネルのLinuxサーバにおいて、計画外のサーバ再起動や負荷上昇などの影響が ありました。 このほかのシステムについては、事前に対策済みであり、影響は発生しておりません。 影響については2つのケースがあり、個別に解説いたします。 ■NTPのLIビットに伴うカーネルのパニック 当社におけるLinuxをベースとしたシステムでは、NTPと呼ばれるネットワーク経由 の時刻合わせを実施しています。 今回のうるう秒実施に伴い、NTPにおいても2012/7/1 08:59:60が挿入されますが、 その24時間前からLeap Indicatorとよばれる、うるう秒実施予告が通知されます。 ▼うるう秒の対応(日本標準時グループ) http://jjy.nict.go.jp/news/leaps2012.html この通知を受け取った際に、Linuxカーネルの一部バージョンにおいて、異常な動作 を発生致しました。 この影響により、6/30 09:00:00 以降にさくらのVPSおよび、さくらのクラウドのホ ストサーバの一部において、計画外の再起動が発生する事態となりました。 ■うるう秒挿入による、ゲストOSの負荷上昇 うるう秒が実施された2012年7月1日 9時00分00秒以降、お客様のご利用になられて いるVPSやクラウドサービスにおいて、お客様の仮想サーバのCPU使用率上昇が発生 していることを観測しています。 これは、Linuxカーネルの一部バージョンにおいて、うるう秒が挿入された際に、CPU 使用率が上昇するという問題に起因しているものと考えられます。 当社の管理するサーバにおいては、別途対応を行っていたことからこの問題は発生し ておりませんが、お客様管理下の仮想サーバ内でこの問題が発生することによって、 ホストサーバのCPU使用率が上昇するという現象が発生しました。 これにより、問題が発生していないお客様のサーバについても、レスポンスが遅くな るなどの影響が確認されました。 2. 原因について ■NTPのLIビットに伴うカーネルのパニック Red Hat系のLinuxカーネルにおいて、Leap Indicatorを受信し、かつ、うるう秒の挿 入がおこなわれていない状態において、ktime_getにおける正常でない動作が発生し CPUのロックアップが引き起こされることが判明しました。 6月30日に発生した計画外再起動時のカーネルダンプを解析したところ、CPUのロック アップが発生し、ウォッチドッグタイマーによってカーネルのパニックが引き起こさ れたことを確認できました。 PID: 18674 TASK: ffff880b9bf30100 CPU: 1 COMMAND: "qemu-system-x86" #0 [ffff880028227af0] machine_kexec at ffffffff810310cb #1 [ffff880028227b50] crash_kexec at ffffffff810b6312 #2 [ffff880028227c20] panic at ffffffff814da075 #3 [ffff880028227ca0] watchdog_overflow_callback at ffffffff810d63fd #4 [ffff880028227cc0] __perf_event_overflow at ffffffff81108a96 #5 [ffff880028227d60] perf_event_overflow at ffffffff81109089 #6 [ffff880028227d70] intel_pmu_handle_irq at ffffffff8101dd46 #7 [ffff880028227e80] perf_event_nmi_handler at ffffffff814de5f8 #8 [ffff880028227ea0] notifier_call_chain at ffffffff814e0135 #9 [ffff880028227ee0] atomic_notifier_call_chain at ffffffff814e019a #10 [ffff880028227ef0] notify_die at ffffffff8109409e #11 [ffff880028227f20] do_nmi at ffffffff814ddda3 #12 [ffff880028227f50] nmi at ffffffff814dd6b0 [exception RIP: ktime_get+180] この問題については、2012/7/1(日本時間)にRed Hat社から報告されており、同様の ケースであると断定しております。 ▼Why is there high CPU usage after inserting the leap second? https://access.redhat.com/knowledge/ja/solutions/154903 ■うるう秒挿入による、ゲストOSの負荷上昇 Linuxにおいては、うるう秒の処理をカーネル内部において行っていますが、うるう 秒が挿入された際にカーネルに対して通知されないバグがあり、CPU使用率の異常上 昇を引き起こすことが報告されています。 当社の管理するサーバにおいては同様の問題は発生しておらず、現象を確認できない 状況にありますが、発生した時刻や、ホストOSにおいてトレースできる範囲でのゲス トOSのCPU使用状況を鑑みると、本ケースであると考えられます。 この問題については、2012年7月1日(日本時間)にLinux Kernelメーリングリストに おいて報告されております。 ▼Potential fix for leapsecond caused futex related load spikes https://lkml.org/lkml/2012/7/1/27 3. 対応策について 当社においては、うるう秒が実施されることにあわせて、その影響範囲について事前に 調査を行っておりました。 さらなる予防策として、うるう秒実施時間前後に、NTPを使った時刻合わせを一時的に 停止する対応を行い、うるう秒に関するバグがあったとしても顕在化しないよう対策を 行っておりました。 しかしながら、1つ目のケースについては、うるう秒実施の24時間前に顕在化するとい うものであり、結果として計画外のサーバ再起動が発生する事態となりました。 また、二つ目の問題については、お客様管理下の仮想サーバにおいて同時多発的に不具 合が発生することにより、予期せぬ性能の低下を引き起こすこととなりました。 今後については、うるう秒が実施される時間帯以外についても、出来る限りその影響の 事前調査を行うことといたします。 また、同様のイベント発生時におけるお客様への告知等についても改善を行い、同時多 発的な負荷上昇がみられる場合には、リソース制限などを実施し、影響範囲を極小化す るための対策を行うことといたします。 以上、今回のうるう秒実施に伴う影響についてご報告を行うとともに、一連の不具合、 および性能低下の影響を受けたお客様各位に、深くお詫び申し上げます。