服务器磁盘爆满怎么办?df/du 命令应急清理实操

深夜接到告警电话,脑袋一片空白?别慌,我把这些最常见的服务器坑位总结成了“速查表”。不论是磁盘爆满还是数据库变慢,直接对着命令操作,新手也能变专家!建议收藏转发,关键时刻救命用。
第一部分:系统资源“三座大山”
01. 磁盘空间不足(最容易解决的“死机”原因)
现象:服务无法写入日志,数据库直接挂掉。
操作流:
全局搜:执行 df -h 看是哪个分区满了。
找大头:执行 du -sh /* | sort -hr(查看根目录下哪个文件夹最大)。
删垃圾:执行 rm -f /tmp/*.log 或清理 /var/log 下的旧日志。
避坑:删了文件空间没释放?执行 lsof | grep deleted,重启占用该文件的进程即可。
02. CPU 使用率飙升(系统反应慢的元凶)
现象:网页转圈,SSH连接极慢。
操作流:
看排名:执行 top 后按 P(大写),让占用CPU最高的进程排在第一位。
看线程:执行 top -Hp [PID] 查看该进程下哪个线程在耗时。
杀进程:如果是异常脚本,执行 kill -9 [PID]。
建议:如果代码没变,考虑增加CPU核数或开启负载均衡。
03. 内存泄漏(进程莫名消失)
现象:free -m 发现可用内存接近 0,系统触发 OOM Killer 随机杀进程。
操作流:
看剩余:free -h 检查 available 一列。
找凶手:top 后按 M(大写)按内存排序。
紧急救:重启占用内存过高的服务(如 Java 或 Redis)。
长期看:如果是代码问题,需用 valgrind 分析代码泄露点。
第二部分:网络连通“生命线”
04. 网络延迟高(用户反馈“卡”)
现象:网页加载慢,数据传输延迟。
操作流:
测延迟:ping [目标IP] 确认丢包率。
看路径:mtr [目标IP] 查看是哪一跳路由出了问题。
查带宽:iftop -nN 看看是不是有大流量在下载抢占带宽。
05. DNS 解析失败(网站打不开)
现象:Ping不通域名,但能Ping通IP。
操作流:
测解析:nslookup baidu.com。
改配置:执行 vi /etc/resolv.conf,添加 nameserver 114.114.114.114 或 8.8.8.8。
清缓存:/etc/init.d/nscd restart(如果有安装的话)。
06. SSH 连不上(运维最怕的事)
现象:Connection refused 或 Timeout。
操作流:
看服务:systemctl status sshd。
看防火墙:iptables -L -n 看看 22 端口是不是被禁了。
查IP:确认你的本地IP是否被服务器的安全组拦截了。
第三部分:应用与数据库核心
07. 应用服务崩溃(业务停摆)
现象:程序停止运行,502或连接超时。
操作流:
翻日志:tail -n 100 /path/to/app.log 寻找 Error 或 Exception 关键词。
查端口:netstat -ntlp 确认服务端口是否在监听。
重启大法:先重启尝试,不行再根据日志修复。
08. 数据库性能下降(查不出数)
现象:数据库查询慢,导致前台转圈。
操作流:
抓慢SQL:执行 show processlist; 看哪些查询在“Sleep”或执行时间太长。
拆解语句:在 SQL 前加 EXPLAIN 查看是否没走索引。
急救:杀掉堵塞的进程,优化索引或重启数据库服务。
09. 负载均衡不均(有的忙死有的闲死)
现象:有的后端服务器CPU 100%,有的 0%。
操作流:
查配置:确认 Nginx/LVS 里的轮询策略是否正确。
查长连接:确认业务是否开启了长连接,导致请求一直固定在某几台机器。
结语:运维不仅仅是修电脑,更是在瞬息万变的业务中寻找平衡点。作为运维,我们要懂技术,更要懂业务。
本文内容仅供参考,不构成任何专业建议。使用本文提供的信息时,请自行判断并承担相应风险。



