文書の表示以前のリビジョンバックリンク文書の先頭へ この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。 ====== メモリの食いつぶしを防ぐ ====== ===== 概要 ===== * Linux では、システムの物理メモリの使用率が 100% を超えると、スワップ領域が使われる。 * スワップ領域の使用率が 100% となると、OOM killer (Out of Memory Killer) と呼ばれる機能によってメモリを多く使っているアプリケーションやプロセスが強制的に終了される。 * しかし、GUI で操作可能なシステムでは、スワップ領域が使い尽くされるまでの間、メモリを新たに確保することができないため、実質ほぼ何もできない状態となる (システムモニタを既に開いていた場合や端末で該当プロセスを実行中の場合を除く)。 * 物理メモリが使い尽くされた時点で、OOM killer のようにメモリを大量に使っているプロセスを強制終了することができれば、何らかの対処が可能である。 * 特に開発しているプログラムが、誤って無限ループや大量にメモリを使うコードになっているときに助かる。 * ここでは、物理メモリの使用率に応じて、メモリを消費しているプロセスを強制的に終了させる方法を紹介する。 ===== 手順 ===== - earlyoom をインストールする。\\ <code bash> $ sudo apt install earlyoom </code> - サービスを有効化する。\\ <code bash> $ sudo systemctl --enable --now earlyoom </code> - 設定を変更するため、''/etc/default/earlyoom'' を開く。\\ <code bash> $ sudoedit /etc/default/earlyoom </code> - ''EARLYOOM_ARGS'' の値を以下に変更する。\\ <code> EARLYOOM_ARGS="-r 3600 -m 5,2 --avoid '(^|/)(Xorg|wayland|gdm3|sddm|lightdm)$'" </code> * ''-r 3600'': 3600 秒ごと (1 時間ごと) にログを出力する。 * ''-m 5,2'': 空きメモリ 5% 未満で SIGTERM (通常終了)、2% 未満で SIGKILL (強制終了) するようにする。 * ''--avoid '(^|/)(Xorg|wayland|gdm3|sddm|lightdm)$''': マッチしたプロセス (ここでは、GUI 関連) を終了しにくくする。 - 設定を反映する。\\ <code bash> $ sudo systemctl restart earlyoom </code> {{tag>LinuxMint Ubuntu Linux}} linux_mint/メモリの食いつぶしを防ぐ.txt 最終更新: 2025/12/10 17:55by mumeiyamibito