パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

OOM Killer に亭主を殺された憐れな未亡人に対して /.er がすべきこととは」記事へのコメント

  • Linuxに関わっていない者ですがOSとしてこういう動作はどうよ?っと思います
    ずっと前からあるらしいし議論も尽くされているんでしょうが…

    • 長年使ってるがOOMキラーが発動したのは数回しか経験ないな。
      緊急対応としては仕方ない。むしろ実にシンプルな方法なので気に入ってる。
      使えるメモリを完全に食い尽くしてしまうような状況に陥っていることが問題の根なわけだからさ、そうっちをどうにかしなきゃならん。

      親コメント
      • by Anonymous Coward

        >緊急対応としては仕方ない

        いや、そんなわけはないでしょう。メモリ確保の段階でチェックするのがあるべき姿で、Linuxがさぼっているだけです。
        (Linuxのメモリ確保はけして失敗しない)

        まあチェックといっても難しいのですが。

        • by Anonymous Coward on 2013年02月08日 14時22分 (#2321635)
          今は, /proc/sys/vm/overcommit_memory で制御できます.
          2にすれば,overcommit_ratio で指定した上限以上のメモリを確保しようとしたときに,その場で失敗します.
          参考: https://www.centos.org/docs/4/4.5/Reference_Guide/s3-proc-sys-vm.html

          ただ,overcommit をやめただけでは, OOM Killer の発動を完全には止められないらしいです.
          (詳細わかってません.カーネル空間でのメモリ使用量が増えるときに,ユーザ空間のプロセスが追い出されるのかも)
          親コメント
          • by Anonymous Coward

            それに加えて、panic_on_oom=1すればいいじゃない。

        • by Anonymous Coward

          >まあチェックといっても難しいのですが。

          最新のlinuxのメモリ管理がどうなっているのか判らないのですが

          sbrkで要求された空間分をswapに予約しておく。
          swapに空きがなければsbrkを失敗させる。

          というだけの話では済まないのでしょうか?

      • by Anonymous Coward

        > 使えるメモリを完全に食い尽くしてしまうような状況に陥っていることが問題の根なわけだからさ、そうっちをどうにかしなきゃならん。

        同様に考えていましたが、最近VMware仮想環境を使うようになったらOOM Killerが発動するようになってしまい困りました。
        Linux VMに十分なメモリを割り当てていたのでOOM Killerとは無縁と考えていましたが、VMware Toolsが未使用メモリを回収してしまう
        ため、アプリの高負荷時にOOM Killerが発動してしまいました。
        解決法はないのだろうか。。。

        • by Anonymous Coward

          出尽くしてるけど、オーバコミットを禁止する設定に変えるか、保護したいプロセスを指定するか、OOM Killerを止める(panic_on_oomでOSを落とす)設定にするかすればいい。
          …でも、そのケースはVM絡みだしなんか違う可能性もあるような気がちょびっと。

アレゲはアレゲ以上のなにものでもなさげ -- アレゲ研究家

処理中...