站点运营

站点运营:磁盘空间与日志轮转自查,别让日志把服务器撑爆

日志、临时文件和备份长期堆积会占满磁盘,导致写入失败、服务异常。本文从磁盘使用率、inode、日志轮转、压缩归档和告警阈值几个方面,整理站点运营中可执行的检查项,帮助提前发现容量问题,避免因为空间不足影响站点稳定。

站点运营

站点运营:磁盘空间与日志轮转自查,别让日志把服务器撑爆

站点运营中,磁盘空间常常是最容易被忽略的一项。平时页面能打开、后台能登录,大家就不太关注服务器还剩多少空间。直到某天日志写满分区,数据库无法写入,缓存服务异常,甚至图片上传失败,才发现问题不是出在代码,而是出在容量。

日志是磁盘增长的主要来源之一。访问日志、错误日志、抓取日志、应用调试日志、任务队列日志,都会随着时间累积。蜘蛛抓取频繁、接口调用多、异常反复出现时,日志增长速度会明显加快。如果只开不关,只写不清,再大的磁盘也会被慢慢吃掉。

先看几个容易出问题的位置

  • 系统盘或数据盘的使用率,是否长期高于 80%。
  • 日志目录总大小,以及单个日志文件是否已经超过预期。
  • 是否存在大量小文件,导致 inode 被占满。
  • 临时目录、上传临时文件、备份文件是否长期未清理。
  • 数据库慢查询日志、二进制日志是否设置了保留周期。

这些问题不一定会立刻让站点下线,但会降低余量。一旦遇到流量波动、批量任务或异常刷量,磁盘很快就会被写满。对站点运营来说,稳定性比事后救火更重要。

日志轮转要落到配置上

日志轮转不是手动删文件,而是按规则切割、压缩、归档和删除。常见做法是用系统自带的 logrotate,或者应用自己的日志组件。关键是规则要明确:多久切一次、保留多少份、压缩不压缩、什么时候删除。

  1. 按天或按大小切割,避免单个文件过大。
  2. 切割后压缩旧日志,节省空间。
  3. 设置保留天数或保留份数,不要无限保留。
  4. 轮转后通知应用重新打开日志文件,避免继续写入已删除的文件句柄。
  5. 定期验证轮转是否真的生效,而不是只看配置文件。
磁盘告警不是等满了才看,而是要在使用率持续上升时就开始处理。留出余量,才有时间排查和调整。

清理时注意别误删

清理日志和临时文件时,先确认文件是否还在被进程写入。直接删除正在写入的日志,可能导致磁盘空间没有立即释放。更稳妥的做法是清空内容或使用轮转工具处理。对于数据库二进制日志、备份文件,要确认保留策略和恢复需求,不能为了省空间把恢复能力也删掉。

如果站点有多个环境,测试环境和预发布环境也容易堆积日志。它们不直接服务用户,但同样占用磁盘。建议把清理规则统一纳入维护计划,而不是只盯着生产环境。

容量趋势比单点数字更有用

只看今天用了多少不够。记录一周或一个月的磁盘使用趋势,可以判断增长是平稳还是突然加速。如果某段时间日志量明显上升,可以结合抓取记录、错误日志和访问来源排查原因。是蜘蛛抓取变多,还是接口异常反复重试,还是某个任务输出了大量调试信息。

  • 为磁盘使用率设置分级告警,比如 70%、85%、95%。
  • 记录日志目录大小变化,观察增长斜率。
  • 对异常增长设置单独的监控项,避免被整体平均掩盖。
  • 定期检查备份目录和临时目录,确认没有遗留大文件。

把检查写进日常运维

站点运营不需要每天手动翻日志,但需要有一套可执行的检查项。可以每周看一次磁盘使用率、inode 使用率、日志目录大小和轮转记录。每月检查一次保留策略是否合理,是否有该清理没清理的归档。遇到站点变慢、上传失败、写入报错时,也先把磁盘空间作为排查项之一。

磁盘空间和日志轮转看起来是服务器维护的细节,但它直接影响站点能否稳定运行。提前设置规则、保留余量、定期核对,比等到服务异常再处理要省事得多。