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
500
プロセスを殺戮する恐怖の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
160
APIとABIの違い
sat
PRO
5
89
ファイルシステムへのアクセス方法
sat
PRO
0
35
ファイルシステム
sat
PRO
1
39
低レイヤソフトウェア技術者が YouTuberとして食っていこうとした話
sat
PRO
7
6.1k
ポーリングと割り込み
sat
PRO
1
87
Rook: Intro and Deep Dive With Ceph
sat
PRO
1
150
会社員しながら本を書いてきた知見の共有
sat
PRO
3
910
デバイスにアクセスするデバイスファイル
sat
PRO
1
73
Other Decks in Technology
See All in Technology
LLMアプリの地上戦開発計画と運用実践 / 2025.10.15 GPU UNITE 2025
smiyawaki0820
1
390
20201008_ファインディ_品質意識を育てる役目は人かAIか___2_.pdf
findy_eventslides
2
600
AIツールでどこまでデザインを忠実に実装できるのか
oikon48
6
3.2k
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
11
79k
Azure Well-Architected Framework入門
tomokusaba
1
350
カンファレンスに託児サポートがあるということ / Having Childcare Support at Conferences
nobu09
1
530
Modern_Data_Stack最新動向クイズ_買収_AI_激動の2025年_.pdf
sagara
0
240
社内報はAIにやらせよう / Let AI handle the company newsletter
saka2jp
8
1.3k
M5製品で作るポン置きセルラー対応カメラ
sayacom
0
170
綺麗なデータマートをつくろう_データ整備を前向きに考える会 / Let's create clean data mart
brainpadpr
3
380
社内お問い合わせBotの仕組みと学び
nish01
1
560
そのWAFのブロック、どう活かす? サービスを守るための実践的多層防御と思考法 / WAF blocks defense decision
kaminashi
0
160
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
369
20k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
860
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
45
2.5k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
53k
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
Music & Morning Musume
bryan
46
6.8k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Raft: Consensus for Rubyists
vanstee
139
7.1k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
19
1.2k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
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