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 24, 2022
Technology
310
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
恐怖のOOM killerを召喚
以下動画のテキストです
https://youtu.be/o7SbjLpm5-c
Satoru Takeuchi
PRO
September 24, 2022
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
Linuxカーネルの インタフェースは変わりうる?
sat
PRO
1
64
あなたの知らないバージョン命名規則
sat
PRO
2
730
Rook: Intro and Deep Dive with Ceph
sat
PRO
1
60
Machine Check Exception
sat
PRO
2
55
バイナリダンプの模様を読む
sat
PRO
0
80
cpコマンドはディスク上でデータを コピーしないことがある
sat
PRO
3
71
114-ファイルのshallow_copy.pdf
sat
PRO
2
46
113-Btrfsのスナップショット.pdf
sat
PRO
0
32
システム強制終了時にファイルシステムの整合性を保つ~ コピーオンライト編 ~
sat
PRO
0
66
Other Decks in Technology
See All in Technology
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
4
24k
長期運営で肥大化したExcelマスターデータの解消に向けた移行事例
gree_tech
PRO
0
510
AI時代のデータ基盤を考える問い
pacocat
0
670
Kiro WebとCloud Sessions
nagisa53
2
200
OpenID for Verifiable Credentials 実装から見えた相互運用性確保までの道のり(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
270
markdown-poster Introduction
kazamori
0
110
英語が話せなくてもKubeConスタッフに参加した話
yusuke427
2
1.1k
RelayerというPHPのフレームワークを作った
polidog
PRO
0
140
AWSとAzureのマルチクラウド活用における強い味方___AWS_Kiroを使った二刀流スキル作成.pdf
duelist2020jp
0
110
Rust×eBPFでEDRっぽいものをつくる
sunlife3
2
970
「ミスを許さない手順書」を作ってみた 〜 個人的にはこれ以上できることはあまりなさそう/20260827-ssmjp-operation-procedure-update
opelab
1
140
GopherCon @シアトル に行ってきました
logica0419
0
240
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
187
23k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.3k
Design in an AI World
tapps
1
290
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
950
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
710
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.7k
Making Projects Easy
brettharned
120
6.7k
Writing Fast Ruby
sferik
630
63k
Accessibility Awareness
sabderemane
1
180
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
The agentic SEO stack - context over prompts
schlessera
0
880
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.5k
Transcript
恐怖のOOM killerを召喚 Sep. 22nd, 2022 Satoru Takeuchi twitter: satoru_takeuchi
やること • 前回の動画「プロセスを殺戮する恐怖のOOM killer」で紹介したOOM killerを実際 に召喚してプロセスを殺していただく • 発動したことをどうやって検出するかの確認
やってみる • 前準備 ◦ 以下コマンドの実行によって swap機能を切る ▪ sudo swapoff -a
▪ swap機能については別動画で今後説明予定 • やること ◦ 8GiB搭載のシステムで8GiBのメモリを使うプログラムを実行 ◦ 📝 メモリは獲得後に最初に書き込むまで使用していないとみなされる ▪ この機能をdemand pagingと呼ぶ(別動画で紹介予定)
うまくいった…のか? • プロセスは大量にログを出して死んだ • 実はこれはOut Of Memoryとは異なる ◦ Out Of
Memory: メモリを使い切ってしまった状態 ◦ メモリ獲得処理の失敗 : プロセスに要求されたメモリを獲得させるとシステムのメモリを使いつくして しまうと判断した場合、獲得そのものを失敗させる • メモリ獲得直後にデバッグメッセージを入れればわかる
ではどうすれば? • いろいろ方法はあるが、一番楽なのはメモリ獲得を失敗させなくすること • sysctlのvm.overcommit_memoryパラメタが使える ◦ 値が1だと(デフォルトは0)メモリ獲得時に空きメモリ量を考慮しない • 以下コマンド実行後に再びメモリを大量に獲得するプロセス実行 ◦
sudo sysctl vm.overcommit_memory=1
今度は死んだ…ように見えるが、地味でよくわからない • OOMが起きたかどうかはdmesgコマンドでカーネルログを見ればわかる ◦ sudo dmesg
まとめ • OOMは起きると悲しいが、意図的に召喚するのはちょっと面倒 • 「これはOOM killerにやられたか」と思ったらdmesgを見るとよい • dmesgを見ると、以下のようなことがわかる ◦ OOMになったかどうか、OOM
killerが発動したかどうか ◦ OOM発生時、どのようなプロセスが存在していたか ◦ どのプロセスが殺されたか