Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
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
490
プロセスを殺戮する恐怖のOOM killer
以下動画のテキストです
https://youtu.be/D13PVCaHnk0
Satoru Takeuchi
PRO
September 22, 2022
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
「Linux」という言葉が指すもの
sat
PRO
4
120
APIとABIの違い
sat
PRO
5
62
ファイルシステムへのアクセス方法
sat
PRO
0
26
ファイルシステム
sat
PRO
1
34
低レイヤソフトウェア技術者が YouTuberとして食っていこうとした話
sat
PRO
7
6.1k
ポーリングと割り込み
sat
PRO
1
81
Rook: Intro and Deep Dive With Ceph
sat
PRO
1
140
会社員しながら本を書いてきた知見の共有
sat
PRO
3
880
デバイスにアクセスするデバイスファイル
sat
PRO
1
62
Other Decks in Technology
See All in Technology
KotlinConf 2025_イベントレポート
sony
1
130
【初心者向け】ローカルLLMの色々な動かし方まとめ
aratako
7
3.4k
バッチ処理で悩むバックエンドエンジニアに捧げるAWS Glue入門
diggymo
3
200
CDK CLIで使ってたあの機能、CDK Toolkit Libraryではどうやるの?
smt7174
4
140
Webブラウザ向け動画配信プレイヤーの 大規模リプレイスから得た知見と学び
yud0uhu
0
230
20250903_1つのAWSアカウントに複数システムがある環境におけるアクセス制御をABACで実現.pdf
yhana
3
550
Terraformで構築する セルフサービス型データプラットフォーム / terraform-self-service-data-platform
pei0804
1
170
20250910_障害注入から効率的復旧へ_カオスエンジニアリング_生成AIで考えるAWS障害対応.pdf
sh_fk2
3
240
スマートファクトリーの第一歩 〜AWSマネージドサービスで 実現する予知保全と生成AI活用まで
ganota
2
210
roppongirb_20250911
igaiga
1
220
企業の生成AIガバナンスにおけるエージェントとセキュリティ
lycorptech_jp
PRO
2
160
サラリーマンの小遣いで作るtoCサービス - Cloudflare Workersでスケールする開発戦略
shinaps
2
430
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
77
6k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
The Cost Of JavaScript in 2023
addyosmani
53
8.9k
Code Review Best Practice
trishagee
70
19k
How GitHub (no longer) Works
holman
315
140k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.1k
How to Ace a Technical Interview
jacobian
279
23k
Context Engineering - Making Every Token Count
addyosmani
1
39
BBQ
matthewcrist
89
9.8k
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