最近经常收到阿里云告警短信:云服务器实例发生告警,磁盘使用率(98%>85%),持续时间XX天XX时XX分钟。
显然是由于磁盘使用率超过了设置所以进行告警,具体解决如下:(在root账户登录下)
1.直接使用df -h的命令,可以查看到磁盘的大小、使用量、剩余量、使用率及是否挂载。
应该是/data使用率过高导致告警。
2.使用du -sh /data,可以查看data文件夹的大小。
查看data文件夹的大小是19G,但是显示已用却是46G。
3.存在已删除空间却没有释放的进程,使用命令lsof | grep -i deleted。
这里仅截取了部分。
观察这些显示内容,发现有自己部署的服务(截图中省略了该部分),遂将服务kill。
4.再次使用df -h的命令。
发现磁盘使用率已经降下来,当前已用大小恰巧等于data文件夹大小。
场景复现
为什么会存在已删除空间却没有释放的进程?
因为部署的服务已经运行了很长时间,log非常大,初次告警时,因为log影响不大,就直接执行命令rm svr.log,服务并没有终止。但仍然发出告警。参考文章linux中如何解决文件已删除但空间不释放的案例所说,
文章中提出了一种在线清理日志的方法:
参考: