CentOS 7.2(最小)VM vSphereクラスターで実行しています。vSphereクラスターには、CentOSインストーラーのデフォルトのフルディスク使用量パーティションスキームでXFSとしてフォーマットされた16Gドライブがあります。システムは実行されています。テストhttpdサービス(デフォルトのcentosリポジトリのすべてのソフトウェア)ですが、ディスク上のスペース使用量が増えています。これは、問題のあるApacheエラー/アクセスログ(サイズが2 + GB)に一部起因しており、これらのlongを削除するとスペースが解放されます。 。ドライブスペースを何が消費しているのかは私にはそれほど関係ありません(最終的にはこれを削除して舗装します)。ただし、ファイルサイズを確認するためにdf a duを実行すると、不一致が発生し、これが混乱を招きます。 。
まず、df -h
を実行して、ファイルシステムの使用状況を表示します。
[root@svrhttp03 httpd]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos_svrhttp03-root 14G 4.8G 9.1G 35% /
devtmpfs 902M 0 902M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 97M 816M 11% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 497M 169M 329M 34% /boot
tmpfs 183M 0 183M 0% /run/user/0
これは、ルートFSで使用されている4.8Gを示しています。
次に、以下を実行して、ファイルシステムのルートにあるすべてのアイテムのサイズを表示します。
[root@svrhttp03 httpd]# du -a -h -t 10K / 2> /dev/null | grep -v -E "[A-Z,a-z,0-9]/." | sort -h
16K /home
7.4M /root
31M /etc
97M /run
143M /boot
324M /var
1.3G /usr
1.9G /
これは、使用中の1.9Gのみを示しており、すべてのディレクトリの報告されたサイズは、予想どおり、合計で最大1.9Gになります。
では、ディスク上のデータに対してdf
とdu
が主張しているものの間に約2.9Gの不一致があることをどのように見つけることができますか?
これは完全な答えではないかもしれませんが、私はそのような不一致の2つの原因を知っています:
df
du
よりも多くのスペースを表示(別名、非常に大きなファイル)スパースファイルがこれを引き起こす可能性があります。例:/ var/log/lastlogは、VMWareのバグが原因で、多くのVMで非常に巨大(1.2 TBなど)として報告されます。それほど大きくはなく、スパースファイルです。取り扱いはそれらを無視することです。 df
は、実際のディスク領域の空き容量については、常にdu
よりも正確です。
df
は、du
が示すよりもディスクがいっぱいであることを示しています(ディスク領域を消費している非表示のファイル)これの通常の原因は、プロセスによって開いたままになっている削除されたファイルです。これは、アップグレード後、再起動前によくあることです。古いライブラリファイルはすべて、「削除」されてdu
から表示されない場合でも、ファイルハンドルを持つプロセスによって開いたままになります。またはls
。
簡単な取り扱いは再起動することですが、より外科的に扱うことができます。たとえば、lsof | grep -c DEL
で開始し、まだ開いている削除済みファイルの数を確認します。 (ある程度は比較的正常であり、必ずしも病的である必要はありませんが、それでもディスク容量の不一致を理解するために調べるのに適切な場所です。)
ワイルドカードの答えは絶対に正しいですが、理由を言う方が理にかなっているかもしれません。
duは、[〜#〜] vfs [〜#〜]で指定されたパスからディレクトリを介して、すべてのファイルのファイルサイズを再帰的に合計します。複数のマウントされたファイルシステム。
dfは、ファイルシステムの割り当て済みおよび未割り当てのスペースの量を報告します。
ファイルに割り当てられるスペースは、ファイルサイズと常に同じであるとは限りません。ほとんどのファイルシステムは、1バイトよりもはるかに大きいブロックで割り当てます。そのため、最悪の場合、ファイルはブロック全体を割り当てて、その1バイトのみを使用できます。非常に多くの小さなファイルは、それらのサイズの合計よりもはるかに多くのスペースを割り当てます。さらにスパースファイルは、ゼロ以外のデータであるファイルの部分のみを割り当てるため、割り当てるスペースよりもファイルサイズが大きくなる可能性があります。