web-dev-qa-db-ja.com

ディスク容量の使用状況を確認するにはどうすればよいですか?

GoogleCloudのCentOSホストでUbuntuDockerを実行しています。 Dockerは、S3へのイメージのアップロードに使用されるSpring-Bootアプリケーションを実行します。ローカルディスクには何も保存しません。 2週間ごとに、ディスク容量の問題が発生します(デバイスに空き容量がありません)。ホストマシンで以下を実行します。

[james@api /]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       1.0T   58G  967G   6% /
devtmpfs         15G     0   15G   0% /dev
tmpfs            15G     0   15G   0% /dev/shm
tmpfs            15G   26M   15G   1% /run
tmpfs            15G     0   15G   0% /sys/fs/cgroup
tmpfs           3.0G     0  3.0G   0% /run/user/0
tmpfs           3.0G     0  3.0G   0% /run/user/1000

[james@api /]$ Sudo du -hs * | sort -rh | head -5
3.3G    var
1.5G    usr
154M    boot
58M     srv
34M     etc

Dockerコンテナで同じことを実行しました:

[root@ea23811c1871 /]# df -h 
Filesystem      Size  Used Avail Use% Mounted on
overlay         1.0T   58G  966G   6% /
tmpfs            64M     0   64M   0% /dev
tmpfs            15G     0   15G   0% /sys/fs/cgroup
/dev/sda1       1.0T   58G  966G   6% /var/log
shm              64M     0   64M   0% /dev/shm
tmpfs            15G     0   15G   0% /proc/acpi
tmpfs            15G     0   15G   0% /proc/scsi
tmpfs            15G     0   15G   0% /sys/firmware

[root@ea23811c1871 /]# du -hs * | sort -rh | head -5
1.2G    usr
139M    var
2.7M    etc
36K     tmp
28K     root

私の質問は、58Gが隠れている場所をどのように見つけることができるかということです。

ありがとう、ハナン

1
Hanan Bareket

ホストマシンでlsofを実行し、削除されたファイルを表示します

lsof |grep delete

おそらく、プロセスは削除されたファイルを解放しませんでした

0
zersh

まず、まだこれを行っていない場合は、ディスク容量の使用状況についてモニターとアラートを設定してください。 Nagios/Icingaには、セットアップが簡単な汎用プラグインがいくつかあります。ディスクがいっぱいになったときに警告する単純なスクリプトでさえ、ここで役立ちます。

次に、dockerコマンドを使用してコンテナが占有しているスペースを確認する必要があります(docker ps -sdocker system df、またはdocker inspectを調べてください。これらを実行する前にmanページを注意深く読んでください)。また、コンテナー、チェックポイント(使用されている場合)、およびログファイルの構成ファイルユーザーが占有するスペースも考慮する必要があります。一般に、/var/lib/docker/をざっと見て、コンテナ内のどこにどのファイルが存在するかを把握します。

0
Tux_DEV_NULL