磁盘满了怎么处理?

运维/DBA第 3 / 13 题答题框架
参考思路:df 定位挂载点→du 找大文件(排除已删除但未释放的句柄 lsof)→日志切割/临时文件清理→治理机制(轮转/告警阈值/隔离分区)。

五个经典回答示范

回答一 · 校招应届版

三步走:df -h 定位满的挂载点;du 逐层找大文件——du -x --max-depth=1 从挂载点开始逐层下钻;第三步处理有讲究——日志截断(truncate 不是 rm 正在被写的文件)、临时文件清理、然后治理:logrotate 配置、告警阈值(80% 警告 90% 严重)、大文件目录隔离到独立分区防拖垮系统盘。

回答二 · 1-3年经验版

我讲一次生产事故:凌晨根分区 100%,服务全挂。紧急处理发现是被删文件占着空间——lsof | grep deleted 列出句柄未释放的 30G 日志,正确姿势是 truncate 文件而非 rm(rm 后空间仍被占用直到进程重启),重启对应服务释放。根因是应用日志没有轮转策略且这次异常刷屏。整改:全机 logrotate 巡检、日志目录独立分区、磁盘告警提前到 75%。这个案例的教训:删文件前先 lsof 是肌肉记忆。

回答三 · 资深版

资深视角:磁盘治理是体系问题。分层设计——系统盘只放系统与配置、数据独立卷、日志独立卷加轮转加保留天数策略、临时目录定时清理加 size 上限;容量管理——增长率监控(按天外推剩余天数)提前扩容,而不是等告警;根因文化——满盘只是症状:是日志异常暴涨(应用 bug)、数据膨胀无归档(缺冷热分离)、还是被写入攻击(安全事件),分类处置才治本。

回答四 · 追问应对

追问『inode 满了怎么办』:df -i 看 inode 使用率,海量小文件是元凶——find 按时间清理,日志分片策略改大文件模式;『LVM 怎么在线扩容』:pvextend 加盘、lvextend -r 在线扩文件系统;『怎么防止再发生』:自动清理加轮转加容量预测三件套,告警分级通知到人。

回答五 · 反面示范

『磁盘满了 rm 掉最大的日志就行,删了马上好,写个定时任务每天删 /var/log 下所有文件,一劳永逸。』——点评:rm 正在写的文件空间不释放还可能让应用异常;『每天删所有日志』等于没有日志——出问题无据可查,还可能删掉审计要求保留的记录。

怎么练这道题
  1. 打开 模拟练习,选择「运维/DBA」方向,限时 3 分钟作答本题。
  2. 对照上方答题框架,逐点检查:哪些要素没覆盖、哪里表达啰嗦。
  3. 用自己项目的真实经历替换框架中的占位内容,重讲一遍并录音回听。

这类题在真实面试中常被追问细节,
建议进入限时模式练一遍。

开始限时演练