dfとduの結果に差がある場合には - ぷちWiki

最終更新日時:

概要



df でパーティションごとのディスク使用量が表示されますが、この情報が du の結果と異なる場合があります。
この場合の対処方法の1つを紹介します。


対処方法



このケースで一番よくあるのは、あるプロセスが使用している最中のファイルを削除してしまった場合、、、です。
特に経験上、MySQL でよく起きるような気がします。

以下のようにすると、上記のようなファイルを抽出することができます。

 # ls -al /proc/*/fd/* | grep deleted

その結果、以下のような結果が返ってくることがあります。

 lrwx------  1 mysql    mysql    64 Dec  5 19:13 /proc/14322/fd/0 -> /dev/pts/0 (deleted)
 lrwx------  1 mysql    mysql    64 Dec  5 19:13 /proc/14322/fd/1 -> /dev/pts/0 (deleted)
 lrwx------  1 mysql    mysql    64 Dec  5 19:13 /proc/14322/fd/2 -> /dev/pts/0 (deleted)

上記は MySQL が使用しているファイルなので、MySQL を再起動することにより、df と du の違いを是正することが出来ます。