1つまたはいくつかの重要なシステムサービスデーモンを使用して一部のLinuxサーバーを実行すると、奇妙なことが発生した場合に備えて、これらのデーモンのOOMキラーを調整したいと思います。たとえば、今日MySQLを実行しているUbuntuサーバーの中には、apt-checker
MySQLデーモンの多くのプロセスが原因で終了しました。はいすべてのメモリが消費され、カーネルはMySQLを終了するのが良い考えだと思います。
私はファイルを使ってスコアを調整して/proc/$(pidof mysqld)/oom_score_adj
MySQLが終了したくないという手がかりをカーネルに提供できることを知っていますが、これはサービスを再起動しても保持されません。これらの調整を含めるには、パッケージのinit / upstartスクリプトを編集する必要がありますか?私はパッケージに属するファイルを調整するので、これは非常にエレガントな解決策だとは思わない。通常のupstart / initスクリプトに接続して条件に合わせて調整できますか?または、次のように未定義のスクリプトを実行することをお勧めしますかwhile true{ adjust_oom(); sleep 60;}
?
ベストアンサー1
いくつかの最新のデーモン監視システムにはこれを行う方法があります。 (実際に対応する作業を行うチェーンローディングツールがあるため、みんなこれを行う方法があります。 )
- 突然現れる:
oom score
作業ファイルに使用されます。オームスコア-500
- システム:
OOMScoreAdjust=
サービスユニットの設定を使用してください。サービスユニットパッチファイルを使用して、事前にパッケージ化されたサービスユニットに影響を与えることができます。[サービス]
OOMScoreAdjust=-500 - デーモンツールシリーズ:
oom-kill-protect
サービスプログラムのnoshツールセットのツールを使用してください。run
システムサービスユニットを変換すると、
convert-systemd-units
ツールは実際にOOMScoreAdjust=
設定を次の呼び出しに変換しますoom-kill-protect
。#!/bin/nosh
ボーナスでパラメータ化できます。
…
oom-kill-protect -- -500
…
プログラム 議論oom-kill-protect——fromenv
そして、サービス環境でパラメータの値を設定します(サービスに関連するenvdirから読み取ると仮定し、ここではrcctl
noshツールセットのshimを使用して動作します)。RCTLセットサービス名オーム保護-500
追加読書
- ジョナサンデボインポラード(2016)。
oom-kill-protect
。 Nosh ツールセット。ソフトウェア。 - ジェームズハントとクリントバイラム(2014)。 」
oom score
」。 ヌボリッチレシピ。 - レナート・ペトリング(2013-10-07)。 」
OOMScoreAdjust
..systemdのsystemd.exec
マニュアルページ。 freedesktop.org. - ジョナサン・デ・ボーインポラード。
rcctl
。 Nosh ツールセット。ソフトウェア。 - https://unix.stackexchange.com/a/409454/5132