こんにちは。
今日はメモリとスワップが一杯になった時に固まって動かなくなる対策
としてEarlyOOMを使用します。
メモリが一杯になるとスワップをガリガリし始めて
そのうち固まって動かなくなる最近のLinux。
そうなる前に内部プロセスを落としてフリーズしないようにします。
Fedoraでは標準でWorkstationに採用されています。
もちろんサーバでは使用しないように・・・w
●EarlyOOM
EarlyOOMとはメモリが足りなくなると、内部プロセスを
優先順位に基づき落としてメモリを開放し、フリーズを防ぐアプリです。
OOM Killerがその機能をしていましたが、コントロール性が悪いです。
それを先に制御しようというアプリです。
https://github.com/rfjakob/earlyoom
翻訳エンジンで訳すとこんな感じ
Earlyoomは使用可能なメモリの量と空きスワップを1秒間に最大10回チェックします
(空きメモリが多い場合はそれほど頻繁ではありません)。
デフォルトでは両方が10%未満の場合、最大のプロセス(最大oom_score)
を強制終了します。パーセンテージ値はコマンドライン引数を使用して構成できます。
という事で指定したもしくは大きいプロセスを
あるメモリ量の所で強制的に落としてフリーズを助けます。
主にサーバやエミュレータ、VMそしてブラウザです。
設定ファイルで自由に追加したり出来ます。
このアプリの良い所はフリーズ回避です。
Swapを使い尽くすとメモリが足りなくなりHDDの読み書き多発でフリーズ
する現象を回避します。SSDの延命にも良いかもしれません。
しかしOS内部でプロセスが死ぬので、再起動をおすすめします。
もちろんサーバには使えません。
●EarlyOOMのインストール
Ubuntuの場合は簡単です。
sudo apt install earlyoom
sudo systemctl enable earlyoom
sudo systemctl start earlyoom
手動で実行する際には
earlyoom
を端末で実行してください。
systemdに一応登録しておきます。
設定ファイルに落としたい
sudo nano /etc/default/earlyoom
編集します。
例えばこちらを読んで。
https://github.com/rfjakob/earlyoom/issues/57
設定ファイルに記載します。
Firefoxとかなら下記を、--preferオプションで落とす設定
--avoidオプションで落とさない設定に出来ます。
ーmが最小メモリ、ーsが最小スワップ、
EARLYOOM_ARGS="-m 15 -s 100 -r 0 --prefer '(firefox|Web\sContent)'
などを付けて保存します。
で再起動。
設定がちゃんと生きていて、systemdで起動できればOKです。
●まとめ
少ないメモリPC用です。
これを入れてからフリーズしにくくなりました。
が応急処置です。
OOM killerが起動する前に落としてメモリを確保する、設定出来る
そんな使い方が出来ます。
まあ問題はブラウザの使用メモリ量が多すぎる事でメモリリークしてませんかね?
異常を察知して落としてメモリを開ける、
そんなアプリです。
【Ubuntuの最新記事】
- Ubuntu改造日記 20.04〜 ラン..
- Ubuntu改造日記 節電設定 TLPの..
- Ubuntu改造日記 省メモリ Fire..
- Ubuntu改造日記 22.04〜 Gr..
- Ubuntu改造日記 Swap圧縮 zw..
- Ubuntu改造日記 wubi for ..
- Ubuntu改造日記 コマンドラインでS..
- Ubuntu改造日記 省メモリ キャッシ..
- Ubuntu改造日記 3,000円ジャン..
- Ubuntu改造日記 簡易ファイルサーバ..
- Ubuntu改造日記 16bit x86..
- Ubuntu改造日記 OpenMSX+M..
- Ubuntu改造日記 OpenMSX-c..
- Ubuntu改造日記 キーボード故障対策..
- Ubuntu改造日記 CF-SZ5でCU..
- Ubuntu改造日記 最近のSteam+..
- Ubuntu改造日記 USBメモリ、SS..
- Ubuntu改造日記 USBメモリ、SS..
- Ubuntu改造日記 オープンソース初代..
- Ubuntu改造日記 Onenote &..