このお話は?
dfで見るとディスクを19GB消費しているのに
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vol_hoge
26G 19G 5.1G 79% /
duで見るとディスクを4GBしか消費していない
$ du -hc /
(略)
4.0G total
15GB分のディスクを食ってるのは誰だよ??
って時の対処法。
lsof で確認しよう
よくあるのは、ファイルシステム的には削除されているのに、プロセスがファイルを掴みっぱなしになっているケース。
lsofを使って、deleted となっているファイルを掴んでいるプロセスが無いかを確認します。
# lsof | head -n1
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
# lsof | grep dele
(略)
java 7575 user01 1w REG 253,0 15377397982 5834380 /path/to/log/hoge_2014-05-24.log (deleted)
java 7575 user01 2w REG 253,0 15377397982 5834380 /path/to/log/hoge_2014-05-24.log (deleted)
PID:7575なプロセスが15GBほどのファイルを掴みっぱなしになっていることがわかります
ちなみに、deletedとなっているファイルの実体を確認してみると0バイトでした。
$ ls -al /path/to/log/hoge_2014-05-24.log
-rw-r--r-- 1 user01 group01 0 Jul 27 13:40 /path/to/log/hoge_2014-05-24.log
対処方法
OSを再起動するか、該当のプロセスをkillしましょう。
サービスに影響を与えないよう、注意してくださいね。
すると、プロセスからファイルが開放され、ディスク使用量も無事減りました。