VPS硬盘占用过高排查与处理方法

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

命令解释:

VPS硬盘占用过高排查与处理方法

  • `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. 注意事项

  1. 清理前务必确认文件重要性,避免误删系统文件
  2. 定期备份重要数据
  3. 对生产环境操作建议先在测试环境验证
  4. 使用`tar`压缩比直接删除更安全,便于恢复