PR

 ITpro編集長となって丸3年。今日をもって職を去ることになった。その最後の仕事として,「記者のつぶやき」の記事執筆をアサインされた。さて,何を書こうか――。1週間ほど悩んだが,結局これといったふさわしいネタが思いつかない。ということで,この3年間を振り返って,私が最も印象に残っているトラブル話をしてみようと思う。

 それは2年ちょっと前の2007年3月1日のこと。その日はITproサイトの全面リニューアルの日だ。前日までにテストページを作って確認作業も終えており,前日の夕方からの切り替え作業もほぼ予定通り進んだ。そして3月1日の早朝には,ほぼすべてのページのリニューアルを完了させ,軽く祝杯をあげた後,帰路についた。

 ところが3月1日の昼前,ITproにアクセスすると,どのページも真っ白。調べてみると,Webサーバー・ソフトが次々にハングアップしている。そのころのITproサイトは6台のWebサーバー機でアクセスを分散させて運用していたが,それらが順番にダウンしていったのだ。

 ITproのようなビジネス・ユーザー向けサイトのアクセスは,朝の8時前後からアクセスが増え始め,お昼休みにピークを迎える。その後は徐々にアクセスが減少して夕方6時以降はピーク時の1/10程度にまで落ちる。このトラブルは,事前の確認テストではできていなかったアクセス急増時の問題点が出てしまったわけだ。

2日目,3日目もトラブル原因を特定できず...

 1日目はピークの時間帯を過ぎた夕方にはトラブルは落ち着いたものの,抜本的な対策はできなかった。どうやら,Webサーバーが共有しているNASサーバー(比較的古くて非力)の負荷が急激に高まってWebサーバーとNASサーバーのNFSリンクが切れてしまうため,Webサーバーがコンテンツデータを読み出せずにダウンしているという原因だけが分かった。この要因を軽減するために,ほかのサイトのサーバーなどは別のNASサーバーを利用するように変更した。しかし,それでもトラブルは解消できなかった。3月2日も昼ごろにはアクセス不能に陥り,Webサーバーが次々と倒れていった。

 この2日目も結局は場当たり的な対応しかできなかった。Webサーバーがダウンしたら,即座にリセットする――ただそれだけの対応である。その日の夜には,システム部門と相談して,NASサーバーの代わりに高速なSANシステム(もともと移行する予定だった)への移行を前倒しすること,Webサーバーを3台ほど増強することなどを決めた。

 しかし,ディスクの移行やサーバー機の増設は,「今日決めて明日には実施」というわけにはいかない。数週間,下手をすると数カ月間かかる。明日はどうなるのか。

 ほとんど眠れない夜が過ぎた3日目。やはり,昼にはアクセス不能。ほとんど八方塞がりの状態だ。唯一の救いは,その日が金曜日ということ。土日はアクセスが平日の1/4程度で,平日の昼休みのような大きなピークもない。この土日は何とか乗り切れる。その間にトラブルを起こしている根本を特定して解消しよう。上司などとも相談し,「この週末でトラブル原因が特定できなければ,いったんサービスを止めてでも,リニューアル前の状態に戻そう」と決めた。

たった1ドット四方のGIFファイルの名前間違いが原因

 そして週末。目星が付いていたわけではないが,システム部門の担当者からWebサーバーがキチンと動作しているときにも出しているエラーのログなどを取り寄せ,エラーをつぶしていくことにした。

 エラーログを見ると,「404 Not Found」のHTTPエラーが頻発している。これは,ブラウザがWebサーバー上に存在しないURLをリクエストしたときに起こる。平常時でもある程度は,このエラーは起こる。しかし,ログファイルは,このエラーによって1時間で数Mバイトにもなっており,平常時の量にしては多すぎる。

 そこで,実際にブラウザでアクセスしてみたときのパケットのやり取りをキャプチャして見ると,1ページを表示するのに10数回ものエラーが出ている。よくよく調べてみると,それはhtml中のimgタグにあった。

 そのころのITproのWebページは<img src="/xxxx/spacer.gif" width="xx" height="xxx">のような記述を頻繁に使っていた。spacer.gifを1×1ドットの透明GIFにしておいて,widthやheightの値を指定することで,インデントや行間を調整していたのだ。一方,実際にアップされているGIFファイル名は「spacr.gif」と名前が1文字違っていた。

 調べてみれば大したものではない。たった1ドット四方のGIFファイルだったのだ。この先は推測だが,Webサーバーはディスク上に目的のファイルを見つければ,キャッシュしつつブラウザに要求されたデータを返信する。一方,目的のファイルが見つからないと,「404 Not Found」のエラーを返す。再度,同じデータを要求されても,Webサーバーはディスクにアクセスしてファイルを探す。このため,ディスクアクセスが頻発してしまい,NASサーバーとWebサーバーの間のNFSリンクが切れてしまったのだろう。

 実際,「spacer.gif」と正しい名前のファイルをディスクにアップしたら,エラーは激減し,週が明けた月曜日のピークにも耐えられた。


 折しも,この記事が公開される6月30日は,今年最大のサイトリニューアルの前日である。これまでの経験を踏まえ,トラブルがないように願いたい。

 なお,明日の「記者のつぶやき」は新編集長の所信表明記事が公開される予定だ。ITproのこれからを語ってくれるに違いない。期待していただきたい。そして,ITproの読者の皆さん,これまでありがとうございました。これからもITproをよろしくお願いします。