WEBサイト制作・アプリ開発・システム開発・ブランディングデザイン制作に関するご相談はお気軽にご連絡ください。
構想段階からじっくりとヒアリングし、お客様の課題にあわせたアプローチ手法でお客様の“欲しかった”をカタチにしてご提案いたします。
Blog スタッフブログ
システム開発
[サーバー系]プロセスのOOM Killerからの除外
システム開発担当のTFです。
※さくらのVPS centos stream 9 対応
※他のOS等では、細部が違うことがあります。
やり方
- 除外したいプロセスのPIDを確認する
- 確認したPIDのoom_score_adjに-1000を設定する( OOM Killerの対象から除外される )
- 再起動時に自動的に除外されるように設定する( 今回は、httpd と mariadb )
メモ
メモリが足りなくなると、OOM Killerがメモリ確保のために優先度にしたがってプロセスを落としにかかる。
その優先度を-1000に設定することで、OOM Killerの対象から外す。
この設定で、必要なプロセスが落とされるのを防ぐ。
サンプル
OOM Killerからの除外
// httpd のPIDの確認
systemctl status httpd
ps -ef | grep httpd
// mariadb のPIDの確認
systemctl status mariadb
ps -ef | grep mysql
// 下記{PID}は上記で確認したPIDの数値を入れる
// 対象PIDの優先度設定の確認
cat /proc/{PID}/oom_score_adj
// 対象PIDの優先度を-1000 にしてOOM Killerの対象から外す
echo -1000 > /proc/{PID}/oom_score_adj
httpd の再起動時用設定
vi /usr/lib/systemd/system/httpd.service
# [Service] 内に下記を追加
OOMScoreAdjust=-1000
// serviceを変更したため、設定の再読み込み
systemctl daemon-reload
// httpd の再起動
systemctl restart httpd
// 再度PIDを確認し、優先度が-1000になっているか確認
mariadb の再起動時用設定
vi /usr/lib/systemd/system/mariadb.service
# [Service] 内に下記を追加
OOMScoreAdjust=-1000
// serviceを変更したため、設定の再読み込み
systemctl daemon-reload
// mariadb の再起動
systemctl restart mariadb
// 再度PIDを確認し、優先度が-1000になっているか確認