• 未分類
  • 0

CentOS7 Out Of Memory process killedが出たので対処

Table of Contents

エラー

以下のエラーが出て、知らない間にCentOS7上のサービスが停止していた。

out of memory kill process

以下のように確認したところmysqldがkillされてた…

$ sudo cat /var/log/messages | grep Killed

 kernel: Killed process 1241 (mysqld) total-vm:1675           012kB, anon-rss:0kB, file-rss:0kB, shmem-rss:0kB
 kernel: Killed process 1645 (mysqld) total-vm:6585           04kB, anon-rss:18672kB, file-rss:568kB, shmem-rss:0kB

対処

どうやら/proc/PID/oom_adjを触ることで、Killされる優先順位を変えれるらしい。今回は取り合えず、mysqldの落ちる優先度を下げておくことにしました。

サーバを再立ち上げしていたので、ps auxでmysql関連のPIDを確認

$ ps aux
...
mysql      988  0.0  0.0   9692   652 ? 
...
mysql     1243  0.1  2.8 1631236 29320 ?

この二つの優先度を-16(優先度最低)に変更しておきます。-17にするとOOM killerの対象外になるらしいですが、さすがにそれもやりすぎ感があるので、-16にしておきました。

$ echo -16 > /proc/988/oom_adj
$ echo -16 > /proc/1243/oom_adj

とりあえず、しばらくこれで様子見してみます。ただ、メモリが枯渇した根本原因は別にあると思うので、もっと調査したほうが良さそうですが。

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です