Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
プロセスを殺戮する恐怖のOOM killer
Search
Satoru Takeuchi
PRO
September 22, 2022
Technology
1
530
プロセスを殺戮する恐怖のOOM killer
以下動画のテキストです
https://youtu.be/D13PVCaHnk0
Satoru Takeuchi
PRO
September 22, 2022
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
eBPF
sat
PRO
1
88
waruiBPF
sat
PRO
0
80
eBPFとwaruiBPF
sat
PRO
4
2.5k
Pythonのコードの気になる行でスタックトレースを出す
sat
PRO
0
86
ソースコードを読むときの思考プロセスの例 ~markdownのレンダリング方法を知りたかった2 markdownパッケージ~
sat
PRO
0
170
様々なファイルシステム
sat
PRO
0
310
ソースを読む時の思考プロセスの例-MkDocs
sat
PRO
1
400
ソースを読むプロセスの例
sat
PRO
22
17k
メモリマップトファイル
sat
PRO
1
160
Other Decks in Technology
See All in Technology
非CUDAの悲哀 〜Claude Code と挑んだ image to 3D “Hunyuan3D”を EVO-X2(Ryzen AI Max+395)で動作させるチャレンジ〜
hawkymisc
1
170
MLflowで始めるプロンプト管理、評価、最適化
databricksjapan
1
120
法人支出管理領域におけるソフトウェアアーキテクチャに基づいたテスト戦略の実践
ogugu9
1
220
Playwrightのソースコードに見る、自動テストを自動で書く技術
yusukeiwaki
13
5.2k
安いGPUレンタルサービスについて
aratako
2
2.7k
EM歴1年10ヶ月のぼくがぶち当たった苦悩とこれからへ向けて
maaaato
0
270
AI駆動開発における設計思想 認知負荷を下げるフロントエンドアーキテクチャ/ 20251211 Teppei Hanai
shift_evolve
PRO
2
300
Playwright x GitHub Actionsで実現する「レビューしやすい」E2Eテストレポート
kinosuke01
0
540
AWS Bedrock AgentCoreで作る 1on1支援AIエージェント 〜Memory × Evaluationsによる実践開発〜
yusukeshimizu
6
380
Reinforcement Fine-tuning 基礎〜実践まで
ch6noota
0
170
re:Invent 2025 ~何をする者であり、どこへいくのか~
tetutetu214
0
200
pmconf2025 - 他社事例を"自社仕様化"する技術_iRAFT法
daichi_yamashita
0
800
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
Git: the NoSQL Database
bkeepers
PRO
432
66k
Building Adaptive Systems
keathley
44
2.9k
Music & Morning Musume
bryan
46
7k
How to Think Like a Performance Engineer
csswizardry
28
2.4k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Six Lessons from altMBA
skipperchong
29
4.1k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Transcript
プロセスを殺戮する 恐怖のOOM killer Sep. 22nd, 2022 Satoru Takeuchi twitter: satoru_takeuchi
やること • 前回の動画「Linuxのメモリ管理入門 デモ編」で匂わせた伏線の回収 • システムのメモリ枯渇時に何が起きるのかを確認
おさらい: システムのメモリ使用量のうちわけ total プロセスが使用中 free カーネルが使用中 解放可能 解放不可能 available
おさらい: 空きメモリが減ってくると… total プロセスが使用中 free カーネルが使用中 解放可能 解放不可能 available せまくてつらい
おさらい: カーネルの解放可能メモリを解放 total プロセスが使用中 free カーネルが使用中 解放不可能 available つらくなくなった 解放可能
疑問: 解放可能メモリが無くなるとどうなる? • こういう状態のことを「Out of Memory(OOM)」と呼ぶ total プロセスが使用中 free カーネルが使用中
解放不可能 available もぅマヂ無理。。。
OOM killer出現 • デフォルトではカーネルの「OOM killer」という処理が動き出す • total プロセスが使用中 free カーネルが使用中
解放不可能 available OOM killerです
メモリ枯渇の主因となっているプロセスを推測 total プロセスが使用中 free カーネルが使用中 解放不可能 available プロセスAがたくさんメモリを使っとるな … プロセスAのメモリ
推測したプロセスを強制終了させる total プロセスが使用中 free カーネルが使用中 解放不可能 available 死んで プロセスAのメモリ ウワァァァ!
freeメモリができあがって万事解決 total プロセスが使用中 free カーネルが使用中 解放不可能 available やったね
OOM発生時の挙動変更: 個々のプロセス • /proc/<pid>/oom_score_adj • 値の意味 ◦ -1000から1000の値を設定(デフォルトは0) ◦ 低いほどOOM
killerによる殺害対象になりにくい ◦ -1000だとOOM killerによる殺害対象から外される
OOM発生時の挙動変更: システム全体 • vm.panic_on_oom sysctlパラメタ • 値の意味 ◦ 0: 必ずOOM
killer発動 ◦ 1: 物理メモリが残っている場合は OOM killer。それ以外はカーネルパニック ▪ 例: memory cgroupなどによって特定のプロセス群のメモリ使用量を制限している場合 ◦ 2: 必ずカーネルパニック • OOM killerではなくパニックさせる意味は? ◦ OOM killerによってシステムにとって必須なプロセスが死んだときは運用継続してもしょうがないと きがある ◦ パニック時にカーネルダンプを取得するなどして、 OOMに至った理由を知りたいことがある
まとめ • システムのメモリが枯渇するとOut Of Memoryという状態になる • デフォルトではOOM killerというカーネルの処理が動作する • OOM
killerは「こいつを殺せばメモリ不足解消に一番よさそう」というプロセスを選 んで強制終了させる • OOM状態になったときの挙動は変更できる ◦ 📝 LinuxにおけるOOM発生時の挙動 ◦ https://zenn.dev/satoru_takeuchi/articles/bdbdeceea00a2888c580