49/59Gを使っているとしてdf
スペースを探し始めました。
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 59G 49G 7.9G 86% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
udev 2.0G 4.0K 2.0G 1% /dev
tmpfs 396M 340K 396M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 2.0G 0 2.0G 0% /run/shm
none 100M 0 100M 0% /run/user
overflow 1.0M 0 1.0M 0% /tmp
「最初に試してみました。du
5.1G .
2.3G ./var
1.3G ./usr
973M ./var/log
834M ./lib
736M ./lib/modules
713M ./var/lib
600M ./root
592M ./var/log/nginx
456M ./var/www
私は数学専攻ではありませんが、49Gではないと確信しています。
これを試してみるncdu
と5GB/128GBを使っていることがわかりました。
答え1
その理由の1つは、ファイルがディスクから削除されたが、まだメモリに開いているためです。これらのファイルは削除されましたが、まだディスク容量を占めていることが報告されています。
を使用して、この状態のファイルがあること(およびどのプロセスがそのファイルを開いたままにするか)を確認できますlsof
。
$ lsof | grep deleted
open.pl 15220 steve 3r REG 8,1 70 56099817 /home/steve/scratch/in.txt (deleted)
列7(上記の場合70)はファイルサイズ(バイト単位)です。最初の列(open.pl)はファイルを開いたままにするプロセスです。 2番目の列はプロセスのPIDです。
通常、これは大量のログファイルが削除されたが、そのファイルを使用するプロセスが再起動されない場合に発生します。
このスペースを解放するには、ファイルがまだ開いているサービスを再起動するだけです。
答え2
常に「欠けている」ものがあります...まず、ディレクトリ内のinodeテーブル、ファイル名のリスト、および同様の項目が少しスペースを占めます。以前のフロッピーディスクは1.44MBでしたが、MS-DOS FATファイルシステムでは1.38MBしか保存できませんでした。
第二に、Linux / Unixファイルシステムは通常、ルート用に数パーセントのスペースを予約します。これにより、ユーザーがファイルシステム全体をいっぱいにしても、rootにはまだ作業できるスペースがあり、rootに属するログを使用できます。デフォルト値は5%です。 1TBまたは2TBディスクの場合、この値はかなり大きくなる可能性があります(より少ない設定は安全です)。
このtune2fs
コマンドを使用すると、-m オプションを使用してパーセンテージを指定できます。tune2fs -m 1 /dev/sda1
1%だけ維持してください(それだけ維持する必要があります)。