Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxについて >> LinuxはOOMキラーメカニズムをどのように使用しますか?

LinuxはOOMキラーメカニズムをどのように使用しますか?

  

OOMのキラーメカニズムは、プロセスがシステムリソースをある程度破損した場合に、Linuxがプロセスを強制終了するメカニズムです。この記事では、LinuxがOOMキラー機構をどのように使用するかを紹介します。

簡単に言えば、この機構は、特に瞬間にあまりにも多くのメモリを取る人たちを、監視する迅速メモリ不足を防止するために、カーネルがプロセスを殺すためには、メモリのプロセスを大量に消費します。

この機能を使用すると、メモリを解放できない場合でもメモリ処理を繰り返し保証し、システムが停止しないようにして、過剰なメモリを消費するプロセスを見つけることができます。

典型的な状況は次のとおりです。1台のマシンが突然SSHリモートログインしますが、pingを実行してネットワークに問題がないかマシンがダウンしていることを示します。sshdプロセスがOOMキラーによって強制終了されました。

マシンを再起動した後、システムログ/var /log /messagesを表示すると、メモリ不足:強制終了プロセス247(sshd)のようなエラーメッセージが表示されます。

pingがsshできないという別の状況があります。つまり、ネットワーク接続が多すぎてシステムファイル記述子のリソースを使い果たすことができない場合、この状況はここでは考慮しません。

vipを使用した可用性の高いソリューションでは、この状況でも脳が分裂する傾向があります。

重要なシステムプロセストリガー(OOM)メカニズムが強制終了されないようにする:LinuxカーネルのOOMメカニズムを一時的に無効にするには、/proc /PID /oom_adjパラメータを-17に設定します。各プロセスのスコアは、/proc /PID /oom_scoreに格納されています。

重要なプロセスにはsshdまたはいくつかの監視デーモンがありますが、実際の状況に応じて保護したいプロセスを選択できると思います。

カーネルによる強制終了からプロセスを保護するには、次のようにします。

echo -17》 /​​ proc /$ PID /oom_adj

デプロイするための簡単なスクリプトを書くことができます。重要なプロセスがcrontabで除外されないようにします。

pgrep -f' /usr /sbin /sshd' |  PIDを読みながら、echo -17を実行します。/proc /$ PID /oom_adj; done
/usr /sbin /sshd< 'は、重要だと思うプロセスに置き換えることができますが、一致しないように注意してください不一致

1.プロセスの選択方法

OOM Killerがメモリ不足になると、すべてのプロセスが表示され、各プロセスのスコアが計算されます。最高得点のシグナルをプロセスに送信します。

2.スコアの計算方法前ページ12次ページ合計2ページ

Copyright © Windowsの知識 All Rights Reserved