起因
一个服务挂掉了,原以为是IP不可用,结果发现SSH是能上得去的。查了一个在用项目的issue,有人report过磁盘跑满的问题。自己df -h
看了下,果然满了。
解决
首先定位哪里占用了空间,到/
目录下,执行du -h --max-depth=1 /
查询深度为1的路径的空间占用情况。
注意作为一个比较轻量服务的云实例,/usr
不应该这么大
清理一下之前装过的cude
然后重点来清理下/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)占用。即使删除了,为了使用服务,还是会重新占用。
最后检查/log
,这块是持续生成的,需要及时清理。确实发现占用了不少空间,而且最近几天服务负载很大,出现了许多log,其实这个体量和优先级的服务不需要留存。果断清理之。
留言