いつもお世話になってます。工藤と申します。 Vineがどうのという話ではないんですが、ハードからみと思われる障害に 出くわしましたので報告のみ上げておきます。 アーカイブの肥しになれば幸いです。 [運用サーバー概要] ・PentiumIII 933MHz ショップブランドの1Uサーバ ・Postgresd7.2.1+apache1.3.24+php4.1.2でWEBサービスを提供中 ・メンテナンスにはSSHを利用 [障害の概要] 突然DBが倒れたりWEBサービスが利用不能になる事が数回続いた。 調べてみるとpostgres>apache>SSHの順でバタバタとプロセスが倒れたらしい事が /var/log/messagesから判明した。 メッセージの内容はこのmailの最後に引用したようなもので、このパターンを 各プロセス毎にすごい勢いで同ログファイルに書き込んでいた。 メッセージの内容からページングの最中に何かしらの障害が発生しているらしいと 予想をつけた。手元にあったwindows98からDOSの起動フロッピーを作成し、CD-ROM 関係などのいらないファイルを削除し1枚のFDにまとめ、余った領域にmemtest.exe を入れメモリ書き込み試験用FDを作成。 サーバーをこのFDでリブートしmemtestをかけるとエラーが発生。 販売元で再チェックを受けるとやはり再発したのでメモリを交換した。 1週間ほど様子をみたが今のところ問題なくなく稼働している。 [メモ] 今回数種類のバージョンのmemtestで動作試験をやった(単に私が持ってたのが ver1.**と古いものだった&お店のものはver3.**くらい?だったので)が、結果が かなり違っていました。 古いバージョンのものはチェックに入った直後からエラーを出しまくっていたが、 新しいものは1度パスしてからやっとエラーに出食わすという感じでした。 バグフィックスの結果より厳密な試験を行う様になったから?という気もしますし、 ソフト的なバグと違いハード系のトラブルの場合発生の タイミング等再現性が完全にあるわけではないでしょうから、こんなもの?かも しれませんが。memtest自体はネットで検索して拾ってきました。 通常postgresやapacheのプロセスがふっとんだ時はSSHで接続して再起動させて やれば終わりだったのが、今回はSSHも通らないのでかなり慌ててしまいました。 pingだけは通るのが余計に焦りをさそい、データセンターにリブートをお願い したりしたのが問題解決を遅らせる要因にもなってしまいました。 急がば回れじゃないんですけど、こういう時こそ慎重な対応が必要なのだなぁと 痛感しました。 以上報告までに。 [参考:/var/log/messagesのワーニング部分引用] -------------------------------------------------- May 30 11:51:24 galileo kernel: Unable to handle kernel paging request at virtual address 5054544c May 30 11:51:24 galileo kernel: printing eip: May 30 11:51:24 galileo kernel: c013fbba May 30 11:51:24 galileo kernel: *pde = 00000000 May 30 11:51:24 galileo kernel: Oops: 0002 May 30 11:51:24 galileo kernel: CPU: 0 May 30 11:51:24 galileo kernel: EIP: 0010:[d_instantiate+26/48] Tainted: P May 30 11:51:24 galileo kernel: EIP: 0010:[<c013fbba>] Tainted: P May 30 11:51:24 galileo kernel: EFLAGS: 00010282 May 30 11:51:24 galileo kernel: EIP is at May 30 11:51:24 galileo kernel: eax: 50545448 ebx: e6c31ac0 ecx: d0d59040 edx: e6c31af0 May 30 11:51:24 galileo kernel: esi: e5addea0 edi: f2a09ec6 ebp: d0d59160 esp: f2a09e9c May 30 11:51:24 galileo kernel: ds: 0018 es: 0018 ss: 0018 May 30 11:51:24 galileo kernel: Process postmaster (pid: 1403, stackpage=f2a09000) May 30 11:51:24 galileo kernel: Stack: e6c31ac0 c0206694 e6c31ac0 d0d59040 00000007 f704f340 f2a09f14 08328ccc May 30 11:51:24 galileo kernel: 3938325b 39333330 d0d5005d f704f340 f2a09f14 08328ccc 00000000 f4d0e900 May 30 11:51:24 galileo kernel: f2a09ebc 00000009 002c1a63 c0206706 d0d59160 d0d59160 c0207405 d0d59160 May 30 11:51:24 galileo kernel: Call Trace: [sock_map_file+156/248] May 30 11:51:24 galileo kernel: Call Trace: [<c0206694>] May 30 11:51:24 galileo kernel: [sock_map_fd+22/100] May 30 11:51:24 galileo kernel: [<c0206706>] May 30 11:51:24 galileo kernel: [sys_accept+197/252] May 30 11:51:24 galileo kernel: [<c0207405>] May 30 11:51:24 galileo kernel: [__free_pages+27/28] May 30 11:51:24 galileo kernel: [<c012a407>] May 30 11:51:24 galileo kernel: [free_pages+26/28] May 30 11:51:24 galileo kernel: [<c012a422>] May 30 11:51:24 galileo kernel: [poll_freewait+58/68] May 30 11:51:24 galileo kernel: [<c013bf2a>] May 30 11:51:24 galileo kernel: [do_select+452/476] May 30 11:51:24 galileo kernel: [<c013c228>] May 30 11:51:24 galileo kernel: [select_bits_free+10/16] May 30 11:51:24 galileo kernel: [<c013c262>] May 30 11:51:24 galileo kernel: [sys_select+1127/1140] May 30 11:51:24 galileo kernel: [<c013c6cf>] May 30 11:51:24 galileo kernel: [sys_socketcall+180/512] May 30 11:51:24 galileo kernel: [<c0207dfc>] May 30 11:51:24 galileo kernel: [system_call+51/56] May 30 11:51:24 galileo kernel: [<c0106d4b>] May 30 11:51:24 galileo kernel: May 30 11:51:24 galileo kernel: May 30 11:51:24 galileo kernel: Code: 89 50 04 89 43 30 8d 41 10 89 42 04 89 51 10 89 4b 08 5b c3 -------------------------------------------------- ほぼこれと同じパターンを繰り返してました。 14行目のProcess名がhttpdだったりsshdだったりしてましたが。 +-----------------------------------------------------------+ | 株式会社デジタオ 技術担当 工藤順三 | | mail tech@xxxxxxxxxxxxx | +--URL http://digitao.net/ --------------------------------+