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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Satoru Takeuchi
PRO
September 24, 2022
Technology
0
290
恐怖のOOM killerを召喚
以下動画のテキストです
https://youtu.be/o7SbjLpm5-c
Satoru Takeuchi
PRO
September 24, 2022
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
大人になるまでの道
sat
PRO
8
3k
ファイルシステムの不整合
sat
PRO
2
120
書籍執筆での生成AIの活用
sat
PRO
1
370
ChatGPTに従って体調管理2026
sat
PRO
0
160
eBPF
sat
PRO
1
120
waruiBPF
sat
PRO
0
120
eBPFとwaruiBPF
sat
PRO
5
4k
Pythonのコードの気になる行でスタックトレースを出す
sat
PRO
1
110
ソースコードを読むときの思考プロセスの例 ~markdownのレンダリング方法を知りたかった2 markdownパッケージ~
sat
PRO
0
210
Other Decks in Technology
See All in Technology
組織のSREを推進するためのPlatform EngineeringとEKS / Platform Engineering and EKS to drive SRE in your organization
chmikata
0
120
Digitization部 紹介資料
sansan33
PRO
1
6.9k
Amazon Bedrock AgentCoreでブラウザ拡張型AI調査エージェントを開発した話 (シングルエージェント編)
nasuvitz
2
120
論文検索を日本語でできるアプリを作ってみた
sailen2
0
120
男(監査)はつらいよ - Policy as CodeからAIエージェントへ
ken5scal
1
340
What's new in Go 1.26?
ciarana
2
240
Databricks (と気合い)で頑張るAI Agent 運用
kameitomohiro
0
300
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
3k
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
6
71k
AI時代のAPIファースト開発
nagix
2
620
全自動で回せ!Claude Codeマーケットプレイス運用術
yukyu30
3
140
AIで 浮いた時間で 何をする? 2026春 #devsumi
konifar
16
3.3k
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
How STYLIGHT went responsive
nonsquared
100
6k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
82
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
750
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
140
Believing is Seeing
oripsolob
1
68
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
130
The untapped power of vector embeddings
frankvandijk
2
1.6k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.3k
Utilizing Notion as your number one productivity tool
mfonobong
3
230
Statistics for Hackers
jakevdp
799
230k
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発生時、どのようなプロセスが存在していたか ◦ どのプロセスが殺されたか