场景表述:

有个复杂的服务的打日志log 比较多,刚好程序log的目录磁盘只有5G,经常达到80%占用,导致磁盘频繁告警,现在需要处理这个磁盘告警

解决方式:

常规解决方法:
1、扩磁盘
2、减少日志级别
以上方法有一定的未知风险及不确定性

另类的解决方式:

# 目前磁盘日志目录 /var/applogs,磁盘空间占用80%
# 空余磁盘 /data/logs, 磁盘空间占用10%
通过挂载的方式 把存储压力转移到 /data/logs
mount --bind /data/logs /var/applogs
# 重启服务,释放inode 占用

这就有个不够细心的地方,挂载之后原目录隐藏了,无法清理原来的 /var/applogs 日志

# 停服务后,卸载挂载,清理原来的日志
umount /data/logs
# 报错 umount target is busy,通过 fuser -mv 查找占用的进程 发现其他的程序的pid,不能轻易重启
# 可以通过 df -h 查到 /var/applogs 的磁盘设备,进行挂载
mkdir /data/test
mount /dev/nvme0n1p1 /data/test
# ls /data/test,发现是 /var/applogs 磁盘的根目录
cd /data/test/var/applogs
> app-xxx.log
# 挂载成功后,这时就可以进到原来的目录 /var/applogs,置空原来的日志文件,磁盘告警解决
最后修改:2022 年 06 月 22 日
如果觉得我的文章对你有用,请随意赞赏