做站点运营,不少事故的起点並不在内容层面,而在服務器被慢慢填满的過程里。磁盘占用上涨通常没有明顯征兆,直到某個訪問高峰,日誌寫入失敗、缓存無法落盘、資料库连接报错,頁面才開始大面积變慢甚至返回 5xx。這類問题排查起来並不复杂,难的是平时没人盯着。
為什么磁盘問题容易被忽视
空間不足不像進程崩溃那样立刻报警。多數系統在剩余空間不多时仍能正常讀寫,只是速度略有下降,监控上的曲线也很平缓。真正出問题时,往往已经叠加了其他因素:一次流量高峰、一批新增备份、一個忘记關閉的調试日誌,几件事撞在一起,空間就见底了。
對站点运营者来说,不需要成為运维专家,但至少要清楚几件事:空間被谁占用、增長速度快不快、清理動作有没有真正执行。
常见的空間占用来源
- 訪問日誌與错誤日誌:單日訪問量大的站点,訪問日誌几天就能到几個 GB,错誤日誌在異常期間也會快速膨胀。
- 應用與調试日誌:排查問题时临时打開的 debug 輸出,事後常常忘记關掉,按請求級別寫入极易失控。
- 缓存與临时文件:頁面缓存、模板编译缓存、上传中轉文件,正常时會自動回收,異常时可能越堆越多。
- 备份文件:本地保留多份資料库和站点备份,是最常见也最容易被忽略的大头。
- 系統包與舊内核:長期不清理的系統更新残留,單個体积不大,累計起来同样可观。
- 孤儿文件與回收站:内容刪除後附件没有同步清理,或者媒体库里的文件已经没有頁面引用。
日誌轮轉该怎么配
日誌是增長最快、也最容易治理的部分。與其等到寫满再手工刪除,不如在产生环节就设定規則。
- 先估算日增量:连續观察几天,算出訪問日誌和错誤日誌的日均体积與峰值体积。
- 确定保留周期:安全审計需要的周期通常比排查問题長,據此决定保留多少天,而不是凭感觉设成 7 天。
- 切分與压缩:按天或按体积切分,歷史文件及时压缩,压缩後体积往往能降到原文件的十分之一左右。
- 同时設定時間和体积上限:只设時間,遇到突發流量仍可能單日寫爆磁盘;加上体积阈值更稳妥。
- 切分後重载服務:部分服務不會自動切換到新文件,需要發送重载信号,否則日誌仍寫在被刪除的句柄上,空間不會释放。
一個可以起步的配置思路
按天切分、保留 14 天、歷史文件压缩、單個文件超過 100MB 提前切分、保留最近 7 份压缩包。這套參數對中小型站点通常够用,後續根據實际磁盘容量和排查需求再調整。
把巡检變成固定動作
- 每天:看一眼磁盘使用率,重点看系統盘而非資料盘,系統盘寫满會连带影响服務啟動。
- 每周:看一次增長最快的目錄,確認加的是预期内的内容,比如备份或日誌,而不是異常文件。
- 每月:核對清理任務是否真的执行過,定时任務失敗常常是静默的,配置里寫了不等于跑起来了。
容量告警的價值在于提前量。等到使用率 95% 才處理,剩下的往往只有救火的時間,没有驗證和回滚的余地。
和抓取之間的關系
空間問题属于基础设施,却會間接影响抓取表現。磁盘寫满後,静態缓存無法更新,頁面可能長期返回舊内容;寫入失敗還可能让部分請求直接报错。對搜尋引擎蜘蛛来说,同一個地址反复失敗,抓取频率會逐步下調,恢复後也需要一段時間才能回到原有节奏。
另外,日誌本身也是判断抓取状况的依據。如果日誌被過早清理或寫坏,回溯問题时就會缺少證據。保留合理周期的訪問日誌,既是為了排查故障,也是為了让抓取分析有據可依。
小结
磁盘治理不需要复杂的工具,關键是把它纳入日常运营的检查項:知道增長来源,设好日誌轮轉,定期核對清理任務。花几分钟看一眼使用率,往往比事後重建服務便宜得多。