並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 76件

新着順 人気順

OOMの検索結果1 - 40 件 / 76件

  • golangとDockerとOOM — KaoriYa

    golangで書いたプログラムをDockerで動かしOOMが発生した際になるべく情報を残して殺される方法を紹介します。 2020/08/16追記: この記事の内容はgolangに関してはやや現実的ではなくなってしまいました。 詳しくは続編を参照してください。 TL;DR golang製のプログラムは仮想メモリ(VSZ)の確保に失敗するとgoroutineのダンプを吐いて死ぬ DockerのOOMはRSSベースで検出時にSIGKILLを投げてくる Docker利用時にVSZで制限をかけるスクリプトを書いた golang製のプログラムはlinux-amd64において最低でも101MBのVSZを要求する VSZの制限がそれより小さいと当然起動できない 実際のRSSは3MB程度で起動する Background コンテナ内で動いているプロダクション上のgolang製のプログラムが時々OOMに殺されて

    • 新人プログラマ アンチパターン:原理原則多すぎて脳みそOOMエラー - Qiita

      この記事で伝えたいこと(忙しい人向け) 新人ほど「保守していく」ことの感覚が腹落ちしにくいのではないか説 我々は保守しやすいコードを書くべきであり、保守しやすいコードを達成するための手段として原理原則やデザインパターンが存在している 保守ってなんで必要なんだっけ?という体系的な理解を持ったうえで、具体的なテクニックを学んでいくことが大事 // 追記(2023/12/9) なんとミノ駆動 さんにコメントいただけました。 もちろん良いコード/悪いコードで学ぶ設計入門 ―保守しやすい 成長し続けるコードの書き方は読んで影響を受けてます。 とってもうれしい。 想定読者 新卒 ~ 2年目くらいまでのプログラミング初心者 Webアプリの保守開発をしているエンジニア 3ヶ月前くらいの自分(未経験からエンジニアになって1年くらい) こんなことないでしょうか 先輩などから原理原則の観点を共有してもらったり、

        新人プログラマ アンチパターン:原理原則多すぎて脳みそOOMエラー - Qiita
      • Introducing OOM reporting: a new dimension to app quality - Crashlytics Blog

        Build Get to market quickly and securely with products that can scale globally

          Introducing OOM reporting: a new dimension to app quality - Crashlytics Blog
        • MySQLがオンラインALTER TABLEでOOM Killerに殺されたはなし | GMOメディア エンジニアブログ

          こんにちは、DBAです。 MySQL5.6のオンラインALTER TABLEでハマった時のおはなしです。 5.6にはオンラインALTER TABLE関連のパラメーターに innodb_sort_buffer_size というものが追加されており(5.5以前はfast index creationが効く時に使われるパラメーターとして内部的に1Mでハードコードされていたものが、設定可能になった)、前にざっくり試したところ 大きくすれば一応それなりの恩恵は受けられそうなので大きくしたんですよ。 毎日の定期バッチで盛大にInnoDBのテーブルにバルクインサートをかけた後にALTER TABLEでインデックスをくっつけてRENAME TABLEでテーブルを切り替える…なんてことをやっているサービスには打ってつけだと思ったわけです(そもそもそのやり方の善悪について やがて DBAは 考えることを止めた

          • OOM Killerにであったら何をするべきか?

            OOM killerで大事なプロセスが殺される。困りますね。。 google で OOM Killerと入力すると 「無効」とか補完されます。しかしどうするのが良いのか、あまりよく説明されている記事がみあたらなかったので自分の考えをメモしておきます。 OOM Killer の目的は何か? まずは何故OOM Killerが発生しているのかについて、ざっくりイメージをつかみましょう。linux kernelはプロセスからの「メモリくれ」という要求に対してたぶん足りそうだという場合に「OK」といって渡します。実際のメモリ割り当てはアクセスが発生するタイミングまで遅延させます。これを遅延アロケーションといい、だいたいにおいてうまく動きます。ただし必ずうまくいくと保証されているわけではないので破綻することがあります。 OOM Killerはこの遅延アロケーションが破綻しそうなときに、適当にプロセスを

            • OOM Killer

              OOM Killer(Out of Memory Killer)は,システムが実メモリーと仮想メモリー空間(スワップ領域)を使い切り,必要なメモリー領域を新たに確保できない場合に,プロセスを強制終了させて空きメモリーを確保する,Linuxカーネルの仕組みです。OOM Killerは,空きメモリーが確保できないことによりシステム自体が停止するという最悪の事態を避けるために用意されています。 OOM Killerは,空きメモリーを十分確保でき,システム上損失のなるべく少ないプロセスを選んで,強制終了します。また,強制終了するプロセスの数がなるべく少なくなるようにしています。実際に,どのプロセスを強制終了するかは,カーネル内部のbadness()関数が決めます。 ただし,OOM Killerにより,システム上大切なプロセスが強制終了させられることもあります。システム・トラブルの原因に成り得ること

                OOM Killer
              • The OOM CTF

                カーネルのバージョンやシステムの構成や実行するタイミングなどの変動要因により、結果が異なる場合がありますことを予めご了承ください。 0.3 自己紹介:熊猫の Linux との関わりについて OSレベルでのセキュリティ強化 2003年4月から2012年3月までは、 TOMOYO Linux という Linux システム向けのアクセス制御モジュールの開発に携わってきました。バッファオーバーフロー脆弱性やOSコマンドインジェクション脆弱性を撲滅できない状況で、当初は SELinux という難解なアクセス制御モジュールしかありませんでした。 TOMOYO Linux のメインライン化にまつわる苦労話は、セキュリティ&プログラミングキャンプ2011の講義資料を参照していただければと思います。 TOMOYO Linux から始まって AKARI や CaitSith に至るまでの変遷は、セキュリティ・

                  The OOM CTF
                • Linux OOM Killerについて - Qiita

                  OOMとは? Linuxは、メモリが不足してシステムが停止する恐れがある際、メモリリソースを多く消費しているプロセスを強制的に殺します。これをOOM Killerといいます。重要なプロセスでも問答無用で殺しにきます。 いるはずのプロセスがある日消えていたのなら、それはOOM Killerに殺されたのかもしれません 確認方法(CentOS) 5789のrubyのプロセスが殺されたことが分かります $ sudo cat /var/log/messages | grep Killed Oct 1 11:11:54 ip-xx-xx-xx-xx kernel: [1983378.957901] Killed process 5789 (ruby) total-vm:4957320kB, anon-rss:2717004kB, file-rss:0kB

                    Linux OOM Killerについて - Qiita
                  • MySQLのOOMと戦った話

                    Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure

                      MySQLのOOMと戦った話
                    • OOM Killer対策

                      先日のこの話 、Out Of Memory Killer 、通称OOM Killerのせいらしい。キャッシュとしてshared memoryを贅沢に(^^;)使用するPostgresSQLのWrite processが集中的に狙われてます>_<。 直接的にこの仕組みを切るにはecho 0 > /proc/sys/vm/oom-kill かecho -17 > /proc/(PID)/oom_adj ただし前者はRedHat独自&OOM Killer完全停止、後者はカーネル2.6.11以降&プロセスごとに設定。CentOS 4.4のカーネルは現時点2.6.9なので前者。もうひとつの方法として、OOM Killerが発動する1つの原因を作っているメモリのオーバーコミットをさせない方法。具体的には、 echo 2 > /proc/sys/vm/overcommit_memory echo 90

                      • OOM relation to vm.swappiness=0 in new kernel

                        I have recently been involved in diagnosing the reasons behind OOM invocation that would kill the MySQL server process. Of course these servers were primarily running MySQL. As such the MySQL server process was the one with the largest amount of memory allocated. But the strange thing was that in all the cases, there was no swapping activity seen and there were enough pages in the page cache. Iron

                          OOM relation to vm.swappiness=0 in new kernel
                        • OOMしたCronJobのメモリ制限を「いい感じ」に増やし、不必要な課金・障害対応を減らす - エムスリーテックブログ

                          初めまして、2024年3月後半にエムスリーのAI・機械学習チームで10日間インターンに参加させていただいた東(@azuma_alvin)です。 もしタイトルが何かに似ていると感じた方がいれば、只者ではないと思われます。 洗練されたデザインでかっこいいと思ったエムスリーオフィスの受付の写真 この記事では、KubernetesのCronJobでOOM(Out Of Memory)が発生した時に「いい感じ」にメモリ制限を増加させてくれるbroomの開発経緯とその実装についてお話しします。 また、インターン期間で感じたエムスリーという「ギーク集団」の中で開発する楽しさについてもお伝えできればと思います。 2週間でゼロ(nil)から開発したbroomは、OSSとしてGitHubで公開しているのでコントリビュートお待ちしております! github.com CronJobのOOMとは CronJobのO

                            OOMしたCronJobのメモリ制限を「いい感じ」に増やし、不必要な課金・障害対応を減らす - エムスリーテックブログ
                          • glibcのmalloc(3)とLinuxカーネルのovercommitとOOM - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

                            この記事はLinux Advent Calendar 2015の23日目です。 glibcのmalloc(3)とLinuxカーネルのovercommitとOOMの関連でも見てみようと思います。Linuxカーネルのシステムコールにはmalloc(3)的なものはないので、mmap(2)、brk(2)が使われます。 今回知りたかったのは、どこでovercommitを許可しているのか?というところと、どのタイミングでOOMが発生するのかという2点です。 OOM発生時の挙動についてはsatoru_takeuchiさんの覚書(2015-12-03)に詳しく書かれていますので、こちらを参照してください。 glibcのmalloc(3)に関してはがちゃぴん先生のmalloc動画を見ましょう。 今回見ているglibcのバージョンは2.22でカーネルは4.3です。 まずはmalloc(3)の大まかな処理を見ま

                              glibcのmalloc(3)とLinuxカーネルのovercommitとOOM - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
                            • Introducing OOM reporting: a new dimension to app quality - Crashlytics Blog

                              Google Answers is no longer accepting questions. We're sorry, but Google Answers has been retired, and is no longer accepting new questions. Search or browse the existing Google Answers index by using the search box above or the category links below.

                              • その後のgolangと(Dockerと)OOM — KaoriYa

                                前の記事:golangとDockerとOOM を書いた後で Go側の事情に変化があったため、 あの記事に書かれた方法は現実的な選択肢ではなくなってしまいました。 この記事では私が使っているGo 1.14以降でのOOM対策と、 どうしてそうせざるを得なかったのか解説をお届けします。 TL;DR Goの64ビット版はVSZの最小要求量が大幅に拡大した (500MB超) 前の記事で紹介した方法が現実的ではなくなった VSZの制限をRSSに転用する=最低でも500MBのRSSを設定することになる 代わりに自プロセスのRSSを監視して閾値を超えたらアポトーシスするようにした RSS取得用のkoron-go/phymemパッケージを作成した Background あの記事を書いた翌月末にGo 1.14がリリースされました。 その変更点の中に以下の記述があります。 The page allocator

                                • LinuxにおけるOOM発生時の挙動 - Qiita

                                  はじめに これはLinux Advent Calendar 2015 3日目の記事を2016/2/2に編集したものです。 Linuxにおいてシステムの物理メモリが枯渇したOut-Of-Memory(OOM)という状態になった際の挙動について説明しています。OOMに関連が深いsysctlパラメタを紹介するとともに、カーネルの内部論理についても触れました。 本記事に記載されているファイル名は、とくに断りが無ければカーネルソースのトップディレクトリからの相対パス名です。調査に使用したカーネルバージョンは4.3です。 本書は話を単純化するために、細かい動作論理については説明を省いていることをご承知おきください。また、本書の中に誤りを見つけたかた、および、私が追いきれなかったソースについての詳細をご存知のかたは、指摘していただけると助かります。 Out-Of-Memory(OOM)とOOM-kill

                                    LinuxにおけるOOM発生時の挙動 - Qiita
                                  • iOSのOOMクラッシュをみつける - DeNA Testing Blog

                                    こんにちは、SWETグループ所属のkariadです。 昨年10月に開催されたiOS Test OnlineにてSWETチームのkuniwakが「実践9つのメモリリークどう見つける?」というタイトルで発表しました。 その発表では触れられなかった、メモリリークから引き起こされるOOMクラッシュを発見する手法についてSWETで実践したことを紹介します。 メモリリークについての説明は多くの記事で説明されているため、省略します。 OOMクラッシュ メモリリークが発生するとOOMクラッシュの危険性があります。 OOMとはOut Of Memoryの略であり、アプリが確保しているヒープ領域を超えてメモリを利用しようとした際に、OSからアプリがキルされクラッシュしてしまいます。 通常のクラッシュにおいては大半のアプリで導入されているであろうFirebase Crashlyticsにて検知可能です。 一方で

                                      iOSのOOMクラッシュをみつける - DeNA Testing Blog
                                    • virtualingを使ってプロセスのメモリ使用量上限値をOoM-Killerのタイミングで自動拡張してみた - 人間とウェブの未来

                                      virtualingとは、わりとセキュアでCPUやメモリ・IOといったリソースの制御が可能なプロセス実行環境上で、設定や構成を変える事なくミドルウェアのようなプロセスを動作させることができるツールです。実装はmrubyです。 github.com hb.matsumoto-r.jp リソース制御なので、例えばプロセスのメモリ使用量の上限を制限していた場合に、その制限を超えると従来通りOoM-Killerが走るわけですが、virtualingの特徴的な機能として、そのイベントを自動で検知し任意のRubyブロックをコールバックする機能があります。 それを利用して、今回はOoM-Killer判定が下されたイベントを検知したら、メモリ制限値を自動で拡張していくような処理を試してみました。 virtualingの設定 設定はRubyで書く事ができます。今回は、OoM-Killerを検知した時にOoM

                                        virtualingを使ってプロセスのメモリ使用量上限値をOoM-Killerのタイミングで自動拡張してみた - 人間とウェブの未来
                                      • OOM Killer に亭主を殺された憐れな未亡人に対して /.er がすべきこととは | スラド Linux

                                        釣り師の釣り堀として名高い Yahoo! 知恵袋に、亭主を OOM Killer に殺された憐れな未亡人の相談が投稿されている。 OOM Killer をご存じ、ない方はOOM Killer 対策、livedoor Wiki の項目などを参照して頂きたい。 それだけなら別に記事にするような話でもないのだが、はてなブックマークにつけられたコメントで「/.でやれ」とか書かれたら、しかもそれがこのエントリーの最多はてなスター獲得コメントときたら、取り上げないわけにはいかない。もしかしたらコメント主は「(本家) /. でやれ」の意味なのかもしれないので、志ある人は米国版知恵袋とか発言小町に憐れな未亡人の相談を英語で投稿し、reddit あたりで盛り上げてから本家 /. にタレこんだりするといいのではないかとも思える。 まだこの投稿にはそれほど気の利いた回答がつけられていないので、憐れな未亡人を助け

                                          OOM Killer に亭主を殺された憐れな未亡人に対して /.er がすべきこととは | スラド Linux
                                        • Kubernetes OOM and CPU Throttling

                                          Introduction When working with Kubernetes, Out of Memory (OOM) errors and CPU throttling are the main headaches of resource handling in cloud applications. Why is that? CPU and Memory requirements in cloud applications are ever more important, since they are tied directly to your cloud costs. With limits and requests, you can configure how your pods should allocate memory and CPU resources in orde

                                            Kubernetes OOM and CPU Throttling
                                          • OOM relation to vm.swappiness=0 in new kernel

                                            I have recently been involved in diagnosing the reasons behind OOM invocation that would kill the MySQL server process. Of course these servers were primarily running MySQL. As such the MySQL server process was the one with the largest amount of memory allocated. But the strange thing was that in all the cases, there was no swapping activity seen and there were enough pages in the page cache. Iron

                                              OOM relation to vm.swappiness=0 in new kernel
                                            • 2月版 OOM killerとの危険な関係に終止符は打てるか(1/2) - @IT

                                              上川純一 日本ヒューレット・パッカード株式会社 コンサルティング・インテグレーション統括本部 2008/2/29 linux-kernelメーリングリスト(以下LKML)かいわいで起きるイベントを毎月お伝えする、Linux Kernel Watch。2008年1月のLKMLでどんなことが起きたのか見てみましょう。 リリースサイクルを気にしてる? 1月24日にLinux Kernel 2.6.24がリリースされました。Linusはこのリリースについては「特筆することはないだろう」というコメントを残しています。 ただ、リリースの直後にLinux Conference Australia(LCA)があり、リリースサイクルについては補足をしていました。通常の-rcのリリースサイクルは2週間なのですが、それを少し(数日程度)延ばすというのです。ただし、LCAの開催中だから、あまり影響させないようには

                                              • kernel:Memory Manage(4) OOM Killer - Simple is Beautiful

                                                空きメモリを確保する仕組みとして"OOM Killer(Out of Memory Killer)"というものがある OOM Killerは、空きメモリが足りない場合に強制的にProcessを終了させて強引に空きメモリを確保する OOM Killerは、空きメモリが確保できないためにシステム全体が停止してしまうことを防止するために用意されている OOM Killerはシステム停止を防止するために必要な機能だが、OOM Killerによる強制終了は大切なProcessを停止させてしまう危険性がある クラスタシステムなどにおいて、クラスタ監視Processが強制停止させられてしまった場合、それが原因となってクラスタの障害が発生してしまう危険性がある kernel2.6.17.1向けにOOM Killerを使用せずにkernel panicを起こさせるパッチが投稿された。これを使用すると、空きメ

                                                  kernel:Memory Manage(4) OOM Killer - Simple is Beautiful
                                                • 【Android】OutOfMemoryと戦う【OOM】 - Qiita

                                                  \ OutOfMemoryが出たぞー! / どうする? 1.  画像の息の根を止める 2.  メンバー変数は全て息の根を止める 3.  それでもダメならLargeHeap 基本的には1と2までで大丈夫だと思います。 LargeHeapまで行く場合は、絶対的に画像などの読み込み量が多い時ぐらいにした方が良いと思います。 1. 画像の息の根を止める Bitmapを使う場合 Bitmap bitmap; private void releaseBitmap() { if (bitmap != null) { bitmap.recycle(); bitmap = null; } } ImageView imageView; private void releaseImageView(){ if(imageView != null){ // src に画像を設定した場合はこっち imageView.

                                                    【Android】OutOfMemoryと戦う【OOM】 - Qiita
                                                  • Out Of Memory(OOM killer)でプロセスを強制に落とされてしまうのをなんとかする。 | BROKENDISH

                                                    Out Of Memory(OOM killer)でプロセスを強制に落とされてしまうのをなんとかする。 2011.08.23 さくらインターネットvpsの設定(Debian) Debian6, VPS不具合, システム管理 Linuxにはメモリーオーバコミットという仕組みがあり、 実メモリの容量以上のメモリがあることにしておいて、 実際に使われる段階になって実メモリ、仮想メモリから確保する。 この時実際に実メモリも仮想メモリも足りなくなった場合にOOM Killerというヤツが召喚される。 OOM killerが動いてしまうと、幾つかのプロセスを選択し勝手にKillしまくってしまう。 これは良くも悪くもあるので、一旦Swapを今の倍にして様子を見る。 それでもOOM Killerが頻発するようだったらメモリオーバーコミットを無効にして様子を見ようと思う。 この所続いてるVPSの不具合はKV

                                                      Out Of Memory(OOM killer)でプロセスを強制に落とされてしまうのをなんとかする。 | BROKENDISH
                                                    • 革命の日々! ホストからゲストにOOM Killer送る方法

                                                      sudo virsh send-key [domain] KEY_LEFTALT KEY_SYSRQ KEY_F で、プロセスぶち殺せるみたいだ。KEY_FをKEY_Cに返るとダンプがとれたりとか

                                                      • cgroup による oom-killer の状態を eventfd 経由で受け取る | harasou.github.io

                                                        cgroup の通知APIcgroup の memory サブシテムを利用すると、登録したプロセスがメモリを使いすぎた際、oom-killer が動作し、対象プロセスを kill することができる(デフォルト動作)。 kill されたことは syslog など見ればわかるが、cgroup には通知APIといった機能があり、アプリ側で oom-killer が動作した際のイベントを受け取ることが可能なので、この機能を試してみる。 通知を受け取るための流れ eventfd を生成する 生成した eventfdとmemory.oom_controlのファイルディスクリプタを、cgroup.event_control に書き込む イベントを受け取るアプリ側で、生成した eventfd をread()する cgroup に登録したプロセスが制限以上のメモリを使用すると oom-killer が動作し

                                                        • LinuxにおけるOOM発生時の挙動

                                                          はじめに これはLinux Advent Calendar 2015 3日目の記事を2016/2/2に編集したものです。 Linuxにおいてシステムの物理メモリが枯渇したOut-Of-Memory(OOM)という状態になった際の挙動について説明しています。OOMに関連が深いsysctlパラメタを紹介するとともに、カーネルの内部論理についても触れました。 本記事に記載されているファイル名は、とくに断りが無ければカーネルソースのトップディレクトリからの相対パス名です。調査に使用したカーネルバージョンは4.3です。 本書は話を単純化するために、細かい動作論理については説明を省いていることをご承知おきください。また、本書の中に誤りを見つけたかた、および、私が追いきれなかったソースについての詳細をご存知のかたは、指摘していただけると助かります。 Out-Of-Memory(OOM)とOOM-kill

                                                            LinuxにおけるOOM発生時の挙動
                                                          • Amazon Aurora 1.18.0がリリースされ並列クエリとOOM回避が実装されました | Developers.IO

                                                            大栗です。 先程Amazon Aurora 1.18.0がリリースされました。並列クエリ(Parallel Query)とOOM回避(OOM Avoidance)という機能が搭載されましたのでご紹介します。並列クエリは2月からプレビューが開始されていましたが今回正式リリースとなりました。 Announcement: Amazon Aurora 5.6 Release 1.18.0 Now Available Amazon Aurora MySQL Database Engine Updates 2018-09-20 New – Parallel Query for Amazon Aurora Amazon Aurora 1.18.0 Amazon Aurora 1.18.0 は MySQL 5.6互換の最新バージョンとなります。新規でMySQL 5.6互換のAuroraを起動するとバージョ

                                                              Amazon Aurora 1.18.0がリリースされ並列クエリとOOM回避が実装されました | Developers.IO
                                                            • ユナイテッド航空、リアルOOM killerを発動 | スラド Linux

                                                              ユナイテッド航空で、一度は着席した乗客が保安官にボコボコにされ飛行機から引きずり降ろされると言う前代未聞の出来事が起きた。Twitterで拡散された動画には、血まみれの乗客が機内通路を無残に引きずられる様子が鮮明に写っており、航空会社には非難が殺到している(Newsweek、ITmedia)。 事の発端はオーバーブッキング。手違いで座席が不足したため、航空会社はランダムに選んだ乗客4名に他の便への振替を要求した。しかしその中の1名がそれを拒否したため,保安官が無理やり引きずりおろした,ということらしい。 LinuxにはOOM killer という仕組みがある。OOM Killerはシステムがメモリ不足(Out of memory)になると発動し、ランダムに選んだプロセスをkillつまり強制終了することで、空きメモリを取り戻す。この仕組みは従来から「墜落しそうな飛行機が乗客をランダムに選んで

                                                                ユナイテッド航空、リアルOOM killerを発動 | スラド Linux
                                                              • KubernetesのOOMとCPUスロットリング

                                                                本文の内容は、2023年1月25日にJAVIER MARTÍNEZ が投稿したブログ(https://sysdig.com/blog/troubleshoot-kubernetes-oom)を元に日本語に翻訳・再構成した内容となっております。 はじめに Kubernetesを使用する場合、Out of Memory (OOM) エラーとCPUスロットリングは、クラウドアプリケーションのリソース処理で主に頭を悩ませる問題です。なぜでしょうか? クラウドアプリケーションにおけるCPUとメモリの要件は、クラウドのコストに直接結びついているため、これまで以上に重要です。 リミットとリクエストを使用すると、リソースの枯渇を防ぎ、クラウドのコストを調整するために、Pod がメモリと CPU のリソースをどのように割り当てるべきかを設定できます。 ノードに十分なリソースがない場合、Podはプリエンプショ

                                                                  KubernetesのOOMとCPUスロットリング
                                                                • ruby で cgroupのeventfd通知機能利用して メモリ使用量や OOM Killer を監視する - hibomaの日記

                                                                  Linux Containerでも使われている cgroup には 、メモリ使用量が閾値より高くなったか/低くなったか や OOM Killer が発生したかどうか といったイベントを eventfd を通じて受け取れるようになっています。この仕組みを ruby から扱う方法を調べてみました なお 検証したカーネルは 3.2.16 です。SL6 2.6.32 のカーネルでは eventfdでの通知は 実装(マージ?)されていないようでした。 rubyで eventfd を使う ruby で eventfd を扱う方法が分からなかったのですが sleepy_penguin という gem を使う事で解決できました http://rubygems.org/gems/sleepy_penguin rackサーバーの Rainbows! の中でも使われている Gem です。 source :rub

                                                                    ruby で cgroupのeventfd通知機能利用して メモリ使用量や OOM Killer を監視する - hibomaの日記
                                                                  • OOM Killer

                                                                    OOM Killer(Out of Memory Killer)は,システムが実メモリーと仮想メモリー空間(スワップ領域)を使い切り,必要なメモリー領域を新たに確保できない場合に,プロセスを強制終了させて空きメモリーを確保する,Linuxカーネルの仕組みです。OOM Killerは,空きメモリーが確保できないことによりシステム自体が停止するという最悪の事態を避けるために用意されています。 OOM Killerは,空きメモリーを十分確保でき,システム上損失のなるべく少ないプロセスを選んで,強制終了します。また,強制終了するプロセスの数がなるべく少なくなるようにしています。実際に,どのプロセスを強制終了するかは,カーネル内部のbadness()関数が決めます。 ただし,OOM Killerにより,システム上大切なプロセスが強制終了させられることもあります。システム・トラブルの原因に成り得ること

                                                                      OOM Killer
                                                                    • VPSで遊ぶ -その8 ServersMan等のOpenVZ系VPSでは /etc/init/ssh.conf内の oom never は絶対に無効にしておくこと!!(有効にしたり、コメントアウトを外したりするとオワタ\(^o^)/状態になる。) - ヌル日記

                                                                      皆様お久しぶりです。本日は注意喚起の小ネタ。 先日ServersMan VPS のUbuntu君をaptitude upgrade した時にハマってしまった小ネタです。 ServersMan等のOpenVZ系VPSのUbuntu(確認したのは10.04)では /etc/init/ssh.conf内の oom neverを有効にすると、upstartでssh-serverが開始出来ず外からsshで繋がらないオワタ\(^o^)/鯖ができあがります。 決してaptitude upgradeで /etc/init/ssh.confを入れ替えないように。 入れ替えるともれなく oom never 行が有効の/etc/init/ssh.confが設置され、ssh端末を閉じた瞬間から二度と繋がらなくなります。(aptitude 途中でserviceの自動再起動が走り地雷設定ファイルが読み込まれるため)

                                                                        VPSで遊ぶ -その8 ServersMan等のOpenVZ系VPSでは /etc/init/ssh.conf内の oom never は絶対に無効にしておくこと!!(有効にしたり、コメントアウトを外したりするとオワタ\(^o^)/状態になる。) - ヌル日記
                                                                      • OOMキラー - Linuxの備忘録とか・・・(目次へ)

                                                                        メモリが無くなってpageのアロケートに失敗すると、動作中の任意のプロセスを削除することで、メモリを確保しようといたします。これをOOM(Out Of Memory)キラーと呼ばれるものです。任意ということですが、そこにはある程度の規則があって、できるだけ削除してもよさそうなプロセスを選択します。この処理を行うのがselect_bad_process()です。 out_of_memory()の最初の処理はsysctl_panic_on_oomが2であるなら、"out of memory・・・"を表示して、panic処理となります。panic()関数ではさようならLinuxということです。そうでないならconstrained_alloc()をコールしています。この関数はアロケーションの束縛(?)すなわち、NUMAシステムに掛かる処理でX86では常にCONSTRAINT_NONEを返します。

                                                                        • OOM_Killer - linux-mm.org Wiki

                                                                          The functions, code excerpts and comments discussed below here are from mm/oom_kill.c unless otherwise noted. It is the job of the linux 'oom killer' to sacrifice one or more processes in order to free up memory for the system when all else fails. It will also kill any process sharing the same mm_struct as the selected process, for obvious reasons. Any particular process leader may be immunized ag

                                                                          • RHEL6.4(kernel 2.6.32-303)以降の vm.swappiness=0 と OOM Killer の関係 - ablog

                                                                            RHEL6.4(kernel 2.6.32-303)以降、vm.swappiness=0 にすると OOM Killer が発動しやすくなるので、1 にしましょうという話を見かけるのでメモ。詳しくは後日調べる予定。 Deploying Oracle Database 12c on Red Hat Enterprise Linux 6 Best Practices Warning: Since Red Hat Enterprise Linux 6.4, setting swappiness to 0 will even more aggressively avoid swapping out, which increases the risk of out-of-memory (OOM) killing under strong memory and I/O pressure. To ach

                                                                              RHEL6.4(kernel 2.6.32-303)以降の vm.swappiness=0 と OOM Killer の関係 - ablog
                                                                            • OOM Killer(Out of Memory Killer)を無効にする方法: SPLEX Factory

                                                                              以前にsyslog server で 「OOM-Killer」 というLinuxカーネルの仕組みが原因で「syslog」と「mysql」のプロセスが強制停止される事象が発生した。 1. OOM-Killerとは システムを動作させるために必要なメモリが確保できなくなった場合に、システム全体が停止するのを防止するため、OOM-Killerで定義されたファイルからランダムにProcessを強制終了させ、空きメモリを確保するLinuxカーネルの仕組み。 2. OOM-Killerのデメリット Serverとして提供しているサービスのProcessが強制終了させられ、サービスが提供できなくなる場合がある。 3. 対応策 1). OOM-Killerを無効にする(システム再起動後も有効) # vi /etc/sysctl.conf vm.oom-kill=0 2). 大切なプロセスの優先度を変更し、

                                                                              • 2月版 OOM killerとの危険な関係に終止符は打てるか(2/2) - @IT

                                                                                上川純一 日本ヒューレット・パッカード株式会社 コンサルティング・インテグレーション統括本部 2008/2/29 起動時のfsckって時間かかり過ぎじゃない? 1月のLKMLでは、fsckを高速化するための話題がいくつか出ていました。 Linuxシステムを起動する際には、fsck(file system check)が実行されます。ext3システムであれば、ジャーナル機能があるので通常はほとんど時間はかかりません。しかし、一定期間ごとに1回、もしくは一定の起動回数ごとに1回は、ファイルシステムの整合性を確認するために長時間のfsckが掛かります。 例えば、fsckのタイミングを期間で決めている場合、久しぶりにサーバをリブートすると、問題があってもなくても、起動シーケンスの一部としてfsckが掛かります。このため、なかなかサービスがオンラインにならないという悩みがあります。ただ、ファイルシス

                                                                                • CircleCI で Playframework のプロジェクトを回そうとしたら OOM Killer に殺される件 - Qiita

                                                                                  process が肥大化して落ちる CircleCI で Scala のプロジェクトを sbt test しようとしたところ、コンテナで4GB以上使ったので異常終了したよ、とのエラーメッセージが出た。ssh login を有効にして様子を眺めていたところ、ひとつ目の java process が 1.7GB 程度まで大きくなった後、2つめの java process が出来上がり同じくらいまで大きくなっていった様子が確認できた。他に起動しているプロセスと合わせると4GBを超えていそうだ。 Playframework だとテストを fork した java process で実行することをすっかり忘れていた。 解決するにはそれぞれの java process が使うメモリ量を指示すれば良い。入っている sbt は .sbtopts を見てくれるやつなので、 circle.yml に次のように

                                                                                    CircleCI で Playframework のプロジェクトを回そうとしたら OOM Killer に殺される件 - Qiita