原因がわからないまま長らく放置していたシステムの欠陥。
メモリリークが3つも見つかっている。
シチュエーションを書くとこのような状況である。
1.ESXi4.1 で動いてる
2.FreeBSD7.3
3.死ぬのはapache2.2.17/httpd
4.PHP5.3.4/守護神パッチ
5.firebird
この環境で valgrind を試してみたところ3箇所で
何らかの障害につながるリークが見つかる。
上記の環境組み合わせのうち、ESXi4 ではない環境では
まずメモリリークが起きない。
毎回 core吐かせる設定にしたら、毎回違うcoreで違う場所であるが
きちんとページイン出来てない orz なコードで死んでいる。
しかも、この壊れるのがページ離脱時なので実害が見えない。
で、メモリリークがかなり溜まってくると仮想側のシステムが
どーにかなるんだろうが、だいたいその時点でハングしている。
一応、現在の結論はIOエラーに落とし込んで来ているものの、
実証環境がレアな状態であるのが全く悔やまれる次第。
切り分けがハードウェアに近いところでのエラーである為に、非常に追いづらい。
というか、ハードウェアを疑わざる得ないが、単にハードウェアのみならず、
仮想化環境であることが、問題を複雑かつ解きにくくしている。
vmwareではない非仮想化サーバでは決して起きない現象であるから、
vmwareを止めろという結論を見たくないのだが、現時点では
ESXi4.1で色々なシステムを統合しようなんて話は当分できない。
ハードなアクセスがあるからこそ、実績のある仮想化環境を試したのだ。
こんな結論が出るのは残念だ。
0 件のコメント:
コメントを投稿