会社で
PostgreSQLデータベース を何台かのサーバで使っているのですが、そのうち一台が最近以下のようなログを残して自動再起動をほぼ毎日するように。
LOG: background writer process (PID 7127) was terminated by signal 9
LOG: terminating any other active server processes
WARNING: terminating connection because of crash of another server process
DETAIL: The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.
HINT: In a moment you should be able to reconnect to the database and repeat your command.
WARNING: terminating connection because of crash of another server process
DETAIL: The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.
HINT: In a moment you should be able to reconnect to the database and repeat your command.
LOG: all server processes terminated; reinitializing
ログにインデックスを再構成しろとあったのでやってみても効果なく、原因が分からず数日ほったらかし。ユーザーに聞いても特に動作の不具合は無かったのですが、気味が悪いので調べてみると
Out of MemoryでOSによって強制終了させられた というのが。んで、/var/log/messageを見てみると
Mar 7 19:16:10 xxxxxxxxxx kernel: Out of Memory: Killed process 7127 (postmaster).
おお、まさに!
一歩解決に向かって進んだわけですが、このサーバ、5GB RAM+8GB Swapという私の手持ちの中では最強のやつなのですが・・・・
まだ足りませんか? T_T
# たぶん、全メモリのことではない気がする
[2007/3/9 追記] OOM (Out Of Memory) Killer だって。PostgreSQLのWriter processに約1GBのキャッシュメモリあげているようなものだから、集中的に狙われているみたい。
[2007/3/13 追記] ここ にまとめ
Comments