今扱っているWEBシステムで、セッションファイルとApacheのアクセスログを/tmpではなく/tmpfsとしてメモリ上に保存しています。
ある日/tmpfsが上限の900MBに達してしまい、「こりゃヤバイ!」ということで600MB程あるApacheのアクセスログをローテートさせたのですが、/tmpfsの使用容量はほとんど変わりません。
# df実は、Apacheアクセスログをローテートさせた時に再起動も行っているのですが、
Filesystem 1K-blocks Used Available Use% Mounted on
/tmpfs 921600 873120 48480 95% /tmpfs
とある子プロセスがゾンビとなり、access_logへのポインタを保持し続けていたようです。
なので
# ls -l /tmpfsとしても出てこないのですが、古いaccess_logが/tmpfs上に残っていたようです。
# /usr/sbin/lsof | grep deletedとすれば、本来であればあるはずのないaccess_logが出てきました。
あとはそのプロセスをkillして万事解決です。
しかし、なんでApacheの子プロセス残っちゃったのか調べないとな~。。。
0 件のコメント:
コメントを投稿