这里或许是互联网从业者的最后一片净土,随客社区期待您的加入!
您需要 登录 才可以下载或查看,没有账号?立即注册
×
在运维中,服务器最常见的问题之一就是 系统盘空间被占满。这不仅会影响应用运行,还可能导致系统卡顿甚至宕机。本文将介绍系统盘占满会遇到的情况,以及如何查看并修复问题。 一、系统盘占满会遇到什么情况? 系统层面影响 - 卡顿或无法登录:系统需要写入临时文件和历史记录,如果写不进去,SSH 登录会卡住。
- Swap 无法使用:物理内存不足时需要写入 swap,系统盘满了会导致直接崩溃。
- 服务异常退出:系统守护进程或任务调度写不进日志,可能直接挂掉。
应用层面影响 - 日志写入失败:Nginx、Apache、Tomcat、系统日志等写不进磁盘,应用可能阻塞。
- 数据库服务崩溃:MySQL、PostgreSQL 等需要写事务日志和数据文件,如果写不进去会停止服务。
- Docker/K8s 服务故障:容器数据写在 /var/lib/docker,系统盘满会直接导致容器无法运行。
典型表现 - 服务器突然卡顿、命令响应缓慢。
- 服务请求报错(500、超时等)。
- 重启后部分服务无法启动。
二、如何查看系统盘占用情况? 查看磁盘整体使用率 重点查看 /(根目录)挂载点的使用率。 进入 /var、/usr、/root 等目录继续排查。 - find / -type f -size +500M 2>/dev/null
复制代码找到大于 500MB 的文件,常见是日志、数据库 binlog、备份包等。 安装 ncdu 工具: - apt install ncdu -y # Debian/Ubuntu
复制代码- yum install ncdu -y # CentOS
复制代码进入后可以直观浏览磁盘占用,并支持直接删除文件。 三、如何修复? 清理日志和临时文件 # 清空系统日志(谨慎) > /var/log/messages > /var/log/syslog
# 删除 7 天前的临时文件 find /tmp -type f -mtime +7 -exec rm -f {} \;
清理软件缓存 # Debian/Ubuntu apt-get clean
删除大文件或转移到数据盘 - 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。
- 修复手段:清理日志/缓存、迁移大文件、启用日志切割、扩容磁盘。
一句话总结: - 系统盘占满,先排查再清理,根本解决方案是合理分区和扩容磁盘。
|