LoginSignup
60
55

More than 5 years have passed since last update.

duで見つからないファイルはlsofで探そう - 見えないファイルにディスクが圧迫されてる時とかね

Last updated at Posted at 2014-08-04

このお話は?

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しましょう。
サービスに影響を与えないよう、注意してくださいね。

すると、プロセスからファイルが開放され、ディスク使用量も無事減りました。

60
55
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
60
55