#干货满满#Linux 磁盘空间占用异常,这样排查不背锅!
  

Hacking 12131人觉得有帮助

{{ttag.title}}

   在日常业务运维过程中,我们时常会遇到这样的情况,收到服务器磁盘空间告警


   登录服务器,通过df -Hl查看,和告警信息一致,接着我们就是要找到导致磁盘空间满的目录或文件

如何找到占用空间大的目录或文件?
一种比较笨的方法是,在根目录下,通过du -hs命令,列出各目录所占空间大小
之后再用同样的方法继续到对应目录下去找
再相对高效一点的方法是通过du的-d参数,或–max-depth,设置查询的目录深度,目录深度增加,所查询的目录,展示出来会很多,这个时候可以通过grep进行过滤
du -h -d 2|grep [GT] |sort -nr  du -h --max-depth=2|grep [GT] |sort -nr  
通过这样的方式,可以搜出以G或者T为单位的占用磁盘空间的大目录,并排序
或者可以通过find来查询
find / -type f -size +1G -exec du -h {} \;  
从效率上来说,find要比du要更快速、灵活
通过这两种方法,我们可以快速找到占用磁盘空间的罪魁祸首
你以为就这么简单?很多时候,你会发现,通过find或du查半天,发现所有加起来的占用空间,和df看到的磁盘空间占用,相差很大,就比如我上面的两张图
通过df查看,磁盘使用37G,但是在根目录下通过du -hs 查看,总共加起来差不多10G,没有隐藏目录,那空间被谁吃了?
很明显,有空间被已删除文件占用,文件删除了,但是资源没释放
之前介绍过一个很好用的命令:lsof,我们可以通过以下命令去查看
lsof +L1  
从结果可以看出,有一个28G左右的大日志文件,删除了,但是空间没释放,这是很常见的一种情况
对应的解决方法就是,重启tomcat应用,释放空间
磁盘空间莫名被吃?
  还有一种经常有人问的问题,就是,通过df查看到的磁盘
会发现,Used和Avail加起来不够Size,莫名被吃掉一部分
其实这是Linux文件系统的一种安全策略,它默认会为root用户保留5%的磁盘空间,留作紧急情况使用。这样能保证有些关键应用(比如数据库)在硬盘满的时候有点余地,不致于马上就 crash
我们可以通过tune2fs修改预留空间的比例
tune2fs -m 1 /dev/vda1  
通过下图可以看到前后对比
这样被吃掉的空间,就吐出来了

打赏鼓励作者,期待更多好文!

打赏
1人已打赏

cyq 发表于 2022-5-23 14:36
  
果然是高手在民间,楼主帖子写的不错,很有参考价值,还想看更多精彩分享,期待楼主下一篇好帖!
cyq 发表于 2022-5-24 08:24
  

感谢分享,有助于工作,学习了!!!
发表新帖
热门标签
全部标签>
每日一问
技术盲盒
技术笔记
干货满满
技术咨询
功能体验
新版本体验
产品连连看
GIF动图学习
标准化排查
自助服务平台操作指引
运维工具
2023技术争霸赛专题
通用技术
秒懂零信任
技术晨报
信服课堂视频
用户认证
安装部署配置
深信服技术支持平台
安全攻防
SDP百科
设备维护
社区帮助指南
答题自测
每日一记
玩转零信任
畅聊IT
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
上网策略
测试报告
日志审计
问题分析处理
流量管理
云计算知识
原创分享
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
功能咨询
终端接入
授权
资源访问
地址转换
虚拟机
存储
迁移
加速技术
排障笔记本
产品预警公告
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
每周精选

本版版主

12
185
6

发帖

粉丝

关注

本版达人

LoveTec...

本周分享达人

新手24116...

本周提问达人