一、紧急诊断:确认临时文件占用情况
当香港VPS出现"no space left on device"警报时,通过SSH连接执行df -h
命令查看磁盘分区使用率。重点关注/tmp、/var/tmp等临时目录,使用du -sh /var/ | sort -rh
可快速定位大体积文件夹。对于LNMP环境,/var/lib/mysql下的临时表文件往往是罪魁祸首。此时建议同步检查lsof | grep deleted
,找出已被删除但仍占用空间的僵尸文件。香港数据中心的高湿度环境可能导致硬件监控日志异常增长,这也是需要排查的重点区域。
二、即时清理:安全删除临时文件策略
针对确认可删除的临时文件,建议分步骤操作:先使用rm -f /tmp/.log
清除过期日志,再通过find /var/log -type f -mtime +7 -delete
删除7天前的系统日志。对于MySQL产生的临时文件,应在phpMyAdmin中执行"FLUSH TABLES"后谨慎清理ibtmp1文件。香港VPS的特殊性在于可能存有跨境业务数据,执行shred -u
安全擦除敏感临时文件比简单删除更稳妥。清理过程中需持续使用watch -n 1 df -h
监控空间释放进度,避免误删关键文件导致服务崩溃。
三、应急扩容:临时存储空间扩展技巧
当清理后空间仍不足时,可创建临时交换分区应急:通过dd if=/dev/zero of=/swapfile bs=1M count=2048
生成2GB交换文件,再执行mkswap
和swapon
激活。对于香港VPS常见的KVM架构,可利用fallocate -l 1G /extraspace
快速分配临时存储。更彻底的方案是联系服务商在线扩容磁盘,香港机房通常能在15分钟内完成LVM卷组扩展。注意这些临时措施会加大IO负载,仅适合维持业务运行至正式维护窗口期。
四、服务恢复:关键进程重启与验证
完成清理后,需要有序重启受影响服务:先重启Web服务器(Nginx/Apache),再处理数据库服务(MySQL/MariaDB),检查PHP-FPM进程。香港VPS用户特别注意,重启后需验证HTTPS证书是否正常加载,因/tmp目录清理可能影响Let's Encrypt的临时验证文件。建议使用systemctl list-units --failed
检查异常服务,并通过journalctl -xe
查看详细错误日志。对于跨境电商类业务,还需测试支付接口的临时文件读写权限是否正常。
五、长效机制:预防临时文件再次爆满
配置logrotate实现日志自动轮转,在/etc/logrotate.d/目录下创建定制规则,将nginx日志设置为每日切割并保留7天。修改MySQL配置中的tmp_table_size和max_heap_table_size参数,避免产生过大的内存临时表。对于香港VPS特有的高访问量场景,建议安装tmpreaper
工具定时清理/tmp目录,并通过cronjob设置每日空间检查脚本。更专业的方案是部署监控系统如Zabbix,当/tmp使用率超过80%时自动触发告警。
六、深度优化:文件系统与存储架构调整
将临时目录挂载到独立分区,在/etc/fstab中添加tmpfs /tmp tmpfs defaults,noatime,nosuid,size=1G 0 0
实现内存式存储。对于长期运行的香港VPS,建议将/var/log迁移至高速SSD存储池。采用Btrfs文件系统的子卷功能,可以为/tmp目录设置专用配额。在存储架构层面,香港机房多提供分布式存储选项,可将临时文件目录映射到可弹性扩展的对象存储,从根本上解决空间不足问题。