VPS硬盘占用过高排查与解决
VPS硬盘占用过高会导致服务中断或性能下降。本文通过Linux命令行方式,提供系统检测、占用分析及清理步骤。
1. 硬盘占用检测
使用`df`命令查看整体磁盘使用情况:
df -h
输出示例:
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 20G 18G 1G 95% /
/dev/vdb1 100G 5G 95G 5% /data
重点关注`Use%`列,若超过85%需处理。
2. 查找占用空间大的文件/目录
使用`du`命令递归分析目录占用:
du -sh * | sort -h
针对大文件分析:
find / -type f -size +1G -exec ls -lh {} \; | sort -k 5 -h
命令解释:
- `du -sh *`:显示当前目录下每个文件/目录的总大小
- `sort -h`:按人类可读大小排序
- `find / -type f -size +1G`:查找根目录下大于1GB的文件
- `-exec ls -lh {} \;`:对找到的文件执行`ls -lh`命令
3. 常见占用类型处理
3.1 日志文件清理
Web服务器日志通常占用大空间:
cd /var/log/nginx
tar czvf logs_$(date +%Y%m%d).tar.gz access.log error.log
> access.log
> error.log
定期创建cron任务:
0 2 * * * cd /var/log/nginx && tar czvf logs_$(date +%Y%m%d).tar.gz access.log error.log && > access.log error.log
3.2 缓存文件清理
PHP缓存清理:
find /var/www/html/cache -type f -mtime +30 -exec rm -f {} \;
Redis持久化文件清理(注意备份):
mv /var/lib/redis/dump.rdb /var/lib/redis/dump.rdb.bak
redis-server /etc/redis/redis.conf --appendonly no
4. 进阶诊断技巧
分析进程占用磁盘:
ps auxf | grep [process_name]
检查挂载点问题:
mount | grep none
磁盘I/O分析:
iotop -o
5. 注意事项
- 清理前务必确认文件重要性,避免误删系统文件
- 定期备份重要数据
- 对生产环境操作建议先在测试环境验证
- 使用`tar`压缩比直接删除更安全,便于恢复