lin 发表于 2025-8-21 17:12:27

Linux 服务器系统盘占满的影响与排查修复方法

在运维中,服务器最常见的问题之一就是 系统盘空间被占满。这不仅会影响应用运行,还可能导致系统卡顿甚至宕机。本文将介绍系统盘占满会遇到的情况,以及如何查看并修复问题。一、系统盘占满会遇到什么情况?系统层面影响
[*]卡顿或无法登录:系统需要写入临时文件和历史记录,如果写不进去,SSH 登录会卡住。
[*]Swap 无法使用:物理内存不足时需要写入 swap,系统盘满了会导致直接崩溃。
[*]服务异常退出:系统守护进程或任务调度写不进日志,可能直接挂掉。
应用层面影响
[*]日志写入失败:Nginx、Apache、Tomcat、系统日志等写不进磁盘,应用可能阻塞。
[*]数据库服务崩溃:MySQL、PostgreSQL 等需要写事务日志和数据文件,如果写不进去会停止服务。
[*]Docker/K8s 服务故障:容器数据写在 /var/lib/docker,系统盘满会直接导致容器无法运行。
典型表现
[*]服务器突然卡顿、命令响应缓慢。
[*]服务请求报错(500、超时等)。
[*]重启后部分服务无法启动。
二、如何查看系统盘占用情况?查看磁盘整体使用率df -h重点查看 /(根目录)挂载点的使用率。
[*]逐级查找占用大的目录
cd /du -sh * 2>/dev/null进入 /var、/usr、/root 等目录继续排查。
[*]快速定位大文件
find / -type f -size +500M 2>/dev/null找到大于 500MB 的文件,常见是日志、数据库 binlog、备份包等。
[*]交互式查看(推荐)
安装 ncdu 工具:apt install ncdu -y   # Debian/Ubuntuyum install ncdu -y   # CentOSncdu /进入后可以直观浏览磁盘占用,并支持直接删除文件。三、如何修复?清理日志和临时文件# 清空系统日志(谨慎)> /var/log/messages> /var/log/syslog# 删除 7 天前的临时文件find /tmp -type f -mtime +7 -exec rm -f {} \;清理软件缓存# Debian/Ubuntuapt-get clean# CentOSyum clean all删除大文件或转移到数据盘
[*]将备份包、旧安装文件迁移到数据盘:
mv filename.tar.gz /data/
[*]优化数据库和日志
开启 logrotate,定期压缩/清理日志。MySQL 定期清理 binlog:PURGE BINARY LOGS BEFORE NOW() - INTERVAL 7 DAY;根本解决:扩容系统盘或挂载数据盘
[*]云服务器一般支持 在线扩容磁盘。
[*]也可以单独挂载数据盘,把 /var/log、/var/lib/mysql 等大目录迁移过去。
四、总结
[*]系统盘满的后果:服务器卡顿、无法登录、服务崩溃、数据库停止。
[*]排查方法:df -h → du -sh * → find 或 ncdu。
[*]修复手段:清理日志/缓存、迁移大文件、启用日志切割、扩容磁盘。
一句话总结:
[*]系统盘占满,先排查再清理,根本解决方案是合理分区和扩容磁盘。
页: [1]
查看完整版本: Linux 服务器系统盘占满的影响与排查修复方法