webサーバのストレージ消費の調査
調査
ディスク容量をいっぱい使ってるところを探す
code:sh
set -eu
sudo du --summarize --bytes /var/* | sort -nk1 | numfmt --to=iec | column -t
code:log
$ ./check_disk_usage.sh
4 /var/run
9 /var/lock
4.0K /var/local
4.0K /var/opt
36K /var/tmp
403K /var/mail
1.4M /var/spool
1.5M /var/backups
597M /var/cache
4.2G /var/log
8.2G /var/www
123G /var/lib
log, www, lib が消費してる
log
code:sh
$ du -s -b /var/log/* 2>/dev/null | sort -nk1 | numfmt --to=iec | tail
1.1M /var/log/syslog.2.gz
1.2M /var/log/syslog.5.gz
7.8M /var/log/wtmp.1
8.6M /var/log/ufw.log.1
8.6M /var/log/kern.log.1
14M /var/log/installer
15M /var/log/syslog
19M /var/log/syslog.1
35M /var/log/nginx
4.1G /var/log/journal
抱えているログを確認する
code:sh
$ journalctl --disk-usage
Archived and active journals take up 4.0G in the file system.
4GB
ほとんどこのログを見ることは無いので、2週間以上前のログを消す
code:sh
$ sudo journalctl --vacuum-time=14d
.. 省略 ..
Vacuuming done, freed 2.7G of archived journals from /var/log/journal/56152cb1ebec4ea7a09eba3138f5e04c.
$ journalctl --disk-usage
Archived and active journals take up 1.2G in the file system.
2.8GB分減った
www
古い世代のアプリケーションを特に削除していないけれど、そんなにデカイものは置いてなかったはず
漁ったらテンポラリの8GBのファイルシステムが存在していた
dockerでマウントするディレクトリ配下の容量制限をかけたくて8GBのファイルシステムを作っていたのを思い出した アプリケーションのデプロイ場所を変更したときにファイルシステムを削除し忘れていた模様
unmountして削除すれば軽くなるはず
と思ったらそのテンポラリの方のファイルシステムはマウントしていなかった
なんのために作ったんだっけ...
もとはコレのはずなんだが
これとは別でアンマウントするべきものもあったので、マウントを解除する
code:sh
$ df | grep images
/dev/loop0 59365 1295 53484 3% /var/www/websh/images
$ sudo umount /dev/loop0
$ df | grep images
これだけだと再起動時にマウントしようとするので、手動で追記した/etc/fstabを修正する
code:Sh
$ tail -n1 /etc/fstab
/var/www/websh/images.fs /var/www/websh/images ext4 loop 0 0
$ sudo vi /etc/fstab # 手で編集
$ tail -n1 /etc/fstab
# /var/www/websh/images.fs /var/www/websh/images ext4 loop 0 0
コメントアウトだけした
使っていないファイルシステムも削除した