追加読書

追加読書

1つまたはいくつかの重要なシステムサービスデーモンを使用して一部のLinuxサーバーを実行すると、奇妙なことが発生した場合に備えて、これらのデーモンのOOMキラーを調整したいと思います。たとえば、今日MySQLを実行しているUbuntuサーバーの中には、apt-checkerMySQLデーモンの多くのプロセスが原因で終了しました。はいすべてのメモリが消費され、カーネルはMySQLを終了するのが良い考えだと思います。

私はファイルを使ってスコアを調整して/proc/$(pidof mysqld)/oom_score_adjMySQLが終了したくないという手がかりをカーネルに提供できることを知っていますが、これはサービスを再起動しても保持されません。これらの調整を含めるには、パッケージの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から読み取ると仮定し、ここではrcctlnoshツールセットの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

おすすめ記事