デバッグのためにテストRunしたときに、以下のメッセージが表示されました。
No space left on device
結構最近EBSのボリューム拡張を行ったばかりなのになぜ!?と思い
、まずボリューム全体の使用状況を確認しました。ボリュームの使用状況の確認はdfコマンドを実行します。
ボリューム利用状況確認
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 484M 0 484M 0% /dev
tmpfs 492M 0 492M 0% /dev/shm
tmpfs 492M 464K 491M 1% /run
tmpfs 492M 0 492M 0% /sys/fs/cgroup
/dev/xvda1 35G 34G 0G 99% /
tmpfs 99M 0 99M 0% /run/user/1000
ファイルシステム/dev/xvda1が99%使用されて、空き容量が無い状態でした。EBSを拡張すれば解決するのですが、不要なファイル削除や一時ファイルの削除での対応を進めます。
容量の大きなファイルの確認
以下のコマンドで500MB以上のファイルを検索します。ログファイル群が怪しいと踏んで、/var/logの中身を確認します。
find /var/log -size +500M | xargs ls -l | sort -rn
jounalログの削除
journalファイルがそこそこ大きかったので、jouralのファイルサイズの最大値をjournald.confに書き加えて設定します
$ sudo vi /etc/systemd/journald.conf
SystemMaxFileSize=300M
confファイルを書き換えるだけだと反映されないのでサービスの再起動し、journalctlのログを削除
$ sudo systemctl restart systemd-journald
$ sudo journalctl --vacuum-size=300M
dfコマンドでボリュームを確認すると、少々ましになったものの、まだまだ空きスペースは少ない状態でした。
Yumのキャッシュクリア
以下のコマンドで/var以下のディレクトリの容量も確認します。
$ sudo du -sh /var/*
/var/cache に700MB程度使用されていたのでcacheのクリアを試みます。yumやAPTなどが利用した容量の大きなパッケージファイルが溜まってしまっている可能性があります。以下のコマンドでyumのキャッシュをクリアします。
$ sudo yum clean all
このコマンドは、必要なファイルを残した上でキャッシュクリアを行ってくれるので、rmコマンドなどで削除するよりも安全です。
この処理でキャッシュファイルも小さくなりましたがそれでも、まだ容量不足。
未使用のdockerリソース削除
$ sudo du -sh /var/*
で確認すると、/var/lib/ が大きな容量を使っていることがわかります。しかし、libと名のつくディレクトリを触るのはちょっと躊躇します。
$ sudo du -sh /var/lib/*
/var/lib内を確認すると /var/lib/docker の容量が支配的に大きいことがわかります。このファイルはdockerのコンテナやボリューム、イメージなどのオブジェクトが格納されています。
Cloud9でテスト実行する場合は再度コンテナ化されればいいので、すでに停止しているコンテナを以下のコマンドで削除してしまいます。
$ docker system prune -a
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all images without at least one container associated to them
- all build cache
Are you sure you want to continue? [y/N]
・停止したすべてのコンテナ
・少なくとも 1 つのコンテナーで使用されていないすべてのネットワーク
・少なくとも 1 つのコンテナーが関連付けられていないすべてのイメージ
・すべてのビルド キャッシュ
が削除されるけれど継続してもよいか?という警告が出ます。
先に進めるには「y」を入力しEnter
削除されたイメージが表示され、最後に以下のように削除されて利用可能になったボリュームが表示されます。
Total reclaimed space: 22.108GB
ボリューム利用状況の再確認
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 484M 0 484M 0% /dev
tmpfs 492M 0 492M 0% /dev/shm
tmpfs 492M 520K 491M 1% /run
tmpfs 492M 0 492M 0% /sys/fs/cgroup
/dev/xvda1 35G 7.3G 28G 21% /
tmpfs 99M 0 99M 0% /run/user/1000
tmpfs 99M 0 99M 0% /run/user/0
無事に空き容量を確保することができて、テストRunもできるようになりました。
Komentar