Cloud9 的磁盘空余容量处理
- 2天前
- 讀畢需時 2 分鐘
为调试而执行测试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
删除 journal 日志
journal文件相当大,因此把journal的文件大小最大值写入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,因此尝试清理缓存。可能积存了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] ・所有已停止的容器
・所有未被至少一个容器使用的网络
・所有没有关联至少一个容器的镜像
・所有构建缓存
会被删除,是否继续?——会出现这样的警告。
要继续请输入「y」并回车
会显示被删除的镜像,最后如下显示删除后可用的容量。
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也可以执行了。



留言