起因

一个服务挂掉了,原以为是IP不可用,结果发现SSH是能上得去的。查了一个在用项目的issue,有人report过磁盘跑满的问题。自己df -h看了下,果然满了。
file

解决

首先定位哪里占用了空间,到/目录下,执行du -h --max-depth=1 /查询深度为1的路径的空间占用情况。
file

注意作为一个比较轻量服务的云实例,/usr不应该这么大
清理一下之前装过的cude
file

然后重点来清理下/var
/var目录主要存放的是一些经常变动的文件,如缓存文件、日志文件、程序运行时产生的文件等
/var/cache:应用程序运行过程中产生的一些缓存
/var/lib:存放程序执行过程中使用到的一些数据文件、在该目录下各个软件有各自的目录
/var/lock:某些资源或设备同一时刻只能被一个程序使用或访问,因此在一个程序使用的时候,就为该资源上锁(lock),以防止被其他程序使用,该目录就放置这些相关信息
/var/log:系统中各种日志文件存放的目录
/var/mail:放置个人电子邮箱的目录
/var/spool:该目录通常放置一些队列数据,用完之后一般会被删除
/var/spool/mail/:放置收到的新邮件 (和/var/mail为链接文件)
/var/spool/mqueue/:放置暂时未发出的邮件
/var/spool/cron:放置计划任务数据crontab

持续定位,基本可以锁定是服务的docker占据了大量空间。但是看日志,并不是持续生成的,属于O(1)占用。即使删除了,为了使用服务,还是会重新占用。
file

最后检查/log,这块是持续生成的,需要及时清理。确实发现占用了不少空间,而且最近几天服务负载很大,出现了许多log,其实这个体量和优先级的服务不需要留存。果断清理之。
file

最后修改日期: 2023年4月1日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。