突然消失するかもしれないブログ

”とつきえブログ”

1つのユーザープロセスが搭載している物理メモリを使い切るとLinuxカーネルが落ちる件

昨年の夏、DevQuizのパズル問題を解くために、OS XとLinuxを酷使したのですが、

OS Xは高負荷時(メモリを使い切る)でもシステムが落ちないのに、Linuxは落ちる。

という症状に悩まされました。

計算プログラムを朝、しかけて、夜、結果を確認すると、OS Xの方は、Macがファンをぶんぶん回しながら計算を続けていましたが、VMware vSphereの仮想マシン上で動作するDebian6のLinuxの方は、確実にLinuxカーネルごと落ちてしまうのです。

(仮想マシン、ハイパーバイザ自体は生きている状態です。ハイパーバイザの仕組み上、仮想マシンに割り当てた以上の物理メモリが使われてしまうことはありません。)

自分が作っている計算プログラム、つまり、1つのプロセスで搭載している物理メモリを使い切ってしまうことが原因だということは想像がつくのですが、スワップも設定しているのに、なぜLinuxカーネルが落ちてしまうのか原因がわかりません。

(スワップ領域がSANのストレージ上にあるのでそれが原因とか、VMware vSphereが原因とか??)

今、流行の ”ビッグデータ” などを処理しようとすると、ある程度安定した分散環境が必要になるのですが、原因がつかめないとLinuxベースで安定した分散環境を構築できるのか、この先、不安です。

 

追記:2012/02/19 14:27

Linuxカーネルがフリーズする原因は以下のようにいくつかあるらしいので、切り分けしたいと思います。

(1)Linuxカーネル、ドライバ等にバグがある。

(2)ハードウェアに不具合がある。(メモリモジュールにエラーがあるなど)

(3)仮想実行環境に不具合がある。

 

(2)(3)に問題がないことがわかれば、kexec+kdumpで(1)Linuxカーネル、ドライバ等の不具合を探っていくことになります。

 

※参考

第2回 減り続ける利用可能メモリ……そしてついにリブート!

http://www.atmarkit.co.jp/flinux/rensai/tantei02/bangai02c.html

「Linuxが落ちる原因,遅い理由はこうして突き止める」――VA Linux Systems Japan 高橋浩和氏

http://itpro.nikkeibp.co.jp/members/ITPro/oss/20040427/1/

Linuxでクラッシュダンプを採取(1) ~ kexec + kdump を使ってみる ~

http://dsas.blog.klab.org/archives/50558228.html

 

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。