别再只会用df -h了!CentOS 7/8硬盘监控,这8个命令才是运维老鸟的秘密武器
别再只会用df -h了CentOS 7/8硬盘监控这8个命令才是运维老鸟的秘密武器当服务器突然响应迟缓或是收到磁盘空间告警时大多数人的第一反应是执行df -h查看剩余空间。但真正的运维高手会告诉你这仅仅是问题排查的起点。本文将揭示一套完整的硬盘诊断方法论助你像资深运维工程师一样精准定位问题根源。1. 从基础到进阶磁盘空间排查的完整链条1.1 空间占用可视化分析df -h的局限性在于只能显示文件系统层面的空间使用情况。要深入分析具体目录的空间占用需要组合使用以下工具# 快速定位大文件目录 du -h --max-depth1 / | sort -h这个命令组合能直观显示根目录下各子目录的大小排序。当发现异常占用时可以逐层深入# 继续追踪特定目录 du -h --max-depth1 /var/log | sort -h注意在生产环境执行时建议添加--time参数同时显示文件修改时间有助于判断是否为近期突然增长。1.2 inode耗尽隐藏的磁盘杀手即使df -h显示空间充足系统仍可能因为inode耗尽而报错。检查inode使用情况df -i典型场景对比场景表现特征解决方案常规空间不足df -h显示使用率接近100%清理大文件/扩容inode耗尽df -i显示使用率100%删除小文件/重建文件系统软链接失效du与df结果差异显著检查挂载点/修复损坏链接2. 性能瓶颈诊断超越空间监控的维度2.1 实时IO负载分析iostat是诊断磁盘性能问题的利器iostat -dx 1 5关键指标解读%util设备利用率超过80%表明IO饱和await平均IO等待时间(ms)通常应10mssvctm平均服务时间反映磁盘实际处理速度2.2 进程级IO监控当发现磁盘IO过高时需要定位具体进程iotop -oP常用参数组合-o只显示实际产生IO的进程-P按进程而非线程显示-d 2设置刷新间隔为2秒3. 硬件健康预警防患于未然3.1 SMART健康检测安装smartmontools后检查磁盘健康状态smartctl -H /dev/sda深度检测命令smartctl -a /dev/sda | grep -E Reallocated|Pending|Uncorrectable关键预警信号Reallocated_Sector_Ct重映射扇区数Current_Pending_Sector待映射扇区Uncorrectable_Error_Cnt不可修复错误3.2 坏道检测与修复对于机械硬盘定期检查坏道至关重要badblocks -sv /dev/sda修复流程先备份数据使用fsck修复文件系统必要时考虑更换硬盘4. 高级组合技实战问题排查流程4.1 空间异常增长排查完整诊断链条# 1. 确认文件系统空间 df -h # 2. 定位大文件目录 du -h --max-depth1 /var | sort -h # 3. 查找特定时间修改的文件 find /var/log -type f -mtime -1 -exec ls -lh {} \; # 4. 检查被删除但仍占空间的文件 lsof | grep deleted4.2 性能问题诊断方案当服务器响应缓慢时先用top确认整体负载使用iostat检查磁盘IO瓶颈通过iotop定位高IO进程结合strace分析进程具体操作strace -p PID -e tracefile5. 自动化监控方案5.1 定时检测脚本示例#!/bin/bash # 磁盘空间检查 DISK_USAGE$(df -h / | awk NR2{print $5} | tr -d %) [ $DISK_USAGE -gt 90 ] echo 警报根分区使用率 $DISK_USAGE% # inode检查 INODE_USAGE$(df -i / | awk NR2{print $5} | tr -d %) [ $INODE_USAGE -gt 90 ] echo 警报inode使用率 $INODE_USAGE% # SMART健康检查 smartctl -H /dev/sda | grep -q PASSED || echo 警报磁盘SMART检测失败5.2 日志轮转配置建议防止日志爆满的经典配置/etc/logrotate.conf/var/log/*log { daily missingok rotate 7 compress delaycompress notifempty create 640 root adm sharedscripts postrotate /usr/lib/rsyslog/rsyslog-rotate endscript }6. 常见误区与解决方案6.1 df与du结果不一致可能原因及处理已删除文件仍被进程占用lsof | grep deleted重启相关进程或服务释放空间挂载点覆盖 检查mount输出确认没有重叠挂载文件系统损坏 考虑使用fsck进行修复6.2 快速空间释放技巧当急需释放空间时清理旧内核package-cleanup --oldkernels --count2清空日志文件truncate -s 0 /var/log/messages查找并删除core dump文件find / -name core.* -exec rm -f {} \;7. 性能优化实践7.1 文件系统调优针对ext4文件系统的优化选项/etc/fstab/dev/sda1 / ext4 defaults,noatime,nodiratime,datawriteback 0 1关键参数说明noatime禁止记录访问时间datawriteback提高写入性能commit60延长日志提交间隔7.2 调度算法选择查看当前IO调度器cat /sys/block/sda/queue/scheduler更改为deadline调度器echo deadline /sys/block/sda/queue/scheduler不同负载场景建议负载类型推荐调度器特点数据库deadline保证IO请求截止时间桌面环境cfq公平分配带宽虚拟化环境none由宿主机控制调度8. 应急处理与数据恢复8.1 只读挂载修复当文件系统损坏导致只读时mount -o remount,rw /dev/sda1 /若无效尝试强制检查fsck -y /dev/sda18.2 数据抢救流程立即停止写入操作使用ddrescue创建磁盘镜像ddrescue /dev/sda /mnt/backup/sda.img /mnt/backup/sda.logfile在镜像文件上尝试修复使用testdisk恢复分区表对于重要生产环境建议定期测试备份恢复流程确保在真正需要时能够顺利执行。一套完整的监控体系应该包含空间、性能、健康状态三个维度的检测再配合适当的告警阈值才能真正做到防患于未然。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2436849.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!