実現したいこと
dfコマンドでLinuxの容量を調べてみると、一部使用率がかなり高いことになっています。なので容量の大きいファイルを見つけたいです。
発生している問題
容量の大きいファイルを探しているのですが見つかりません。duコマンドの結果とdfコマンドの結果が一致しないので、恐らくduコマンドでは見つからないようなファイルだと思いますが、その場合どうやって探せば良いのかわかりません。
dfコマンドの結果(/home/shareの使用率が96%になっている):
root@7241785b7147:/# df -h Filesystem Size Used Avail Use% Mounted on overlay 3.6T 491G 3.0T 15% / tmpfs 64M 0 64M 0% /dev tmpfs 126G 0 126G 0% /sys/fs/cgroup shm 64M 0 64M 0% /dev/shm /dev/sda2 726G 655G 35G 96% /home/share /dev/sdc 3.6T 491G 3.0T 15% /etc/hosts tmpfs 126G 12K 126G 1% /proc/driver/nvidia udev 126G 0 126G 0% /dev/nvidia2 tmpfs 126G 0 126G 0% /proc/asound tmpfs 126G 0 126G 0% /proc/acpi tmpfs 126G 0 126G 0% /proc/scsi tmpfs 126G 0 126G 0% /sys/firmware
duコマンドで調べてみた結果(/homeの容量は5.5Gのみ):
root@7241785b7147:/# du -sh * 4.8M bin 4.0K boot 0 dev 1.5M etc 5.5G home 14M lib 4.0K lib64 4.0K media 4.0K mnt 12K models 4.0K opt du: cannot access 'proc/562/task/562/fd/3': No such file or directory du: cannot access 'proc/562/task/562/fdinfo/3': No such file or directory du: cannot access 'proc/562/fd/3': No such file or directory du: cannot access 'proc/562/fdinfo/3': No such file or directory 12K proc 5.5G root 20K run 3.8M sbin 4.0K srv 0 sys 72K tmp 5.6G usr 52M var
duコマンドで/home/share内部のファイルを調べた結果(10/10追加)(やはり巨大なファイルは見当たらない)
root@7241785b7147:/home/share# du -sh .??* * | sort -k1,1nr 768K DiVGAN_3_cnn_remake.ipynb 732K DiVGAN_3_cnn_remake-Copy1.ipynb 716K DiVGAN_3-Copy1.ipynb 696K DiVGAN_3_cnn_remake-Copy2.ipynb 668K DiVGAN_3.ipynb 84K view_data.ipynb 12K .bash_history 12K examples.desktop 11M .cache 11M .local 8.0K .ssh 5.5G knowledge_graph_model 4.0K .bash_logout 4.0K .bashrc 4.0K .profile 3.6M .ipynb_checkpoints 0 .sudo_as_admin_successful 0 data.py 0 main.py
試したこと
- 削除したつもりのファイルをプロセスが開いたままである可能性を考えて調べてみましたが、そういうことはありませんでした。
lsofコマンドで開いているファイルをサイズ順にソートした結果を見ましたが、ファイル名にdeleatedと記載されているファイルは無く、変なプロセスに使われている気配はありません。
root@7241785b7147:/home/share# lsof /home/share/ | sort -k7 -nr sort 532 root cwd DIR 8,2 4096 23333848 /home/share lsof 533 root cwd DIR 8,2 4096 23333848 /home/share lsof 531 root cwd DIR 8,2 4096 23333848 /home/share bash 10 root cwd DIR 8,2 4096 23333848 /home/share COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
- コンテナを再起動してみましたが、状況は変わりませんでした。
補足情報(FW/ツールのバージョンなど)
- Dockerのコンテナ内部のファイルシステムです
- OS:Ubuntu 18.04.3 LTS
よろしくお願いします。
まずは /home/share だけを調べてみてはどうでしょうか。
# cd /home/share
# du -c .??* * | sort -k1,1nr | head
> 削除したつもりのファイルをプロセスが開いたままである可能性を考えて調べてみましたが、そういうことはありませんでした。
これは、具体的に何を確認したのでしょうか?
再起動しても変わらないと言うことでしょうか?
melianさん
/home/shareを調べた結果ですがこのようになりました。
root@7241785b7147:/home/share# du -c .??* * | sort -rn | head -10
5747096 total
5718568 knowledge_graph_model
5254028 knowledge_graph_model/models
1572212 knowledge_graph_model/models/anlg
1572136 knowledge_graph_model/models/story
1571852 knowledge_graph_model/models/eg
1571788 knowledge_graph_model/models/story/grf-story
1571760 knowledge_graph_model/models/eg/grf-eg
1571684 knowledge_graph_model/models/anlg/grf-anlg
537780 knowledge_graph_model/models/gpt2-small
一応ちょっとオプション変えて調べた結果です。
root@7241785b7147:/home/share# du -sh .??* * | sort -k1,1nr
768K DiVGAN_3_cnn_remake.ipynb
732K DiVGAN_3_cnn_remake-Copy1.ipynb
716K DiVGAN_3-Copy1.ipynb
696K DiVGAN_3_cnn_remake-Copy2.ipynb
668K DiVGAN_3.ipynb
84K view_data.ipynb
12K .bash_history
12K examples.desktop
11M .cache
11M .local
8.0K .ssh
5.5G knowledge_graph_model
4.0K .bash_logout
4.0K .bashrc
4.0K .profile
3.6M .ipynb_checkpoints
0 .sudo_as_admin_successful
0 data.py
0 main.py
やはり質問に載せていたdfコマンドにあるように、655Gも使っているようには見えませんね…
otnさん
説明が足りずすみませんでした。
lsofコマンドにより開かれているファイルを調べ、ファイル名にdeleatedと記載されるファイルが無いことを確認しました。
linuxではファイルを削除しても、プロセスがそのファイルを開いている場合は削除されないままであり、その状態のファイルはduコマンドでは見つけられない為duとdhの結果が異なる原因としてよく挙げられます。私のケースもこれが原因かと思って調べましたが、違ったようです。
また、質問文には表記し忘れていましたがコンテナの再起動も試しました。しかし状況は変わりませんでした。