![使用可能なディスク領域をすべて消費しているプロセスを判別するにはどうすればよいでしょうか?](https://rvso.com/image/111997/%E4%BD%BF%E7%94%A8%E5%8F%AF%E8%83%BD%E3%81%AA%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF%E9%A0%98%E5%9F%9F%E3%82%92%E3%81%99%E3%81%B9%E3%81%A6%E6%B6%88%E8%B2%BB%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%82%92%E5%88%A4%E5%88%A5%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%3F.png)
突然、使用可能なディスク領域がすべて/
消えてしまいました。
ディスクに空き容量を確保した場合(たとえば、約 50 GB のデータを削除した場合)、数分後には使用可能なディスク容量が 0 に戻ります( によるdf
)。
明らかに、何らかのプロセスが急速にディスク領域を消費していますが、それが何なのかわかりません。
しかし、確かなことが 1 つあります。それは、それが何であれ、多数の小さなファイルを作成しているに違いないということです。ディスク上には 10 GB を超えるファイルは存在せず、1 GB を超えるファイルはすべて現在よりもずっと古いものだからです。
ディスク容量を消費しているものを見つけるにはどうすればいいですか?
ちなみに、df
問題だけが見えていて、 は見えませんdu
。
たとえば、以下に と から 60 秒間隔で撮影した「スナップショット」をいくつか示しますdu
。df
(ディスクに空き領域を確保した後でこれを行いました。)du
の出力は一定のままです495G
が ( )、df
使用可能な領域が着実に減少していることがわかります。(私は、 で示されている推奨事項に従いました。ここ。つまり、/mnt/root
を指しています/
。
# while true; do du -sh /mnt/root && df -h /mnt/root; sleep 60; done
495G /mnt/root
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 880G 824G 12G 99% /mnt/root
495G /mnt/root
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 880G 825G 11G 99% /mnt/root
495G /mnt/root
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 880G 827G 8.9G 99% /mnt/root
495G /mnt/root
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 880G 827G 8.1G 100% /mnt/root
495G /mnt/root
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 880G 828G 7.5G 100% /mnt/root
答え1
削除されたファイルを扱っているため、du
使用済み領域は登録されませんが、df
登録されます。
削除されたファイルは、所有者のプロセスが停止した後にのみ消えます。所有者のプロセスが停止されるまでは、ファイルは使用中のままになります。
したがって、原因となっているプロセスを見つけるには、次の操作を実行することをお勧めします。
sudo lsof -nP | grep '(deleted)'
次にプロセスを強制終了します。
sudo kill -9 $(lsof | grep deleted | cut -d " " -f4)
答え2
使用できるiotop
どのプロセスが最も多くのディスク書き込み操作を実行しているかを確認します。
例:
Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % init
2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd]
3 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/0]
6 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/0]
7 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [watchdog/0]
8 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/1]