站点运营

站点运营:日誌切割與磁盘空間自查,別让寫满的磁盘拖慢整站响應

磁盘空間是站点运营中最容易被忽略的指标。日誌、备份、缓存會悄悄增長,寫满後最先表現為响應變慢、寫入失敗和抓取下降,而不是立刻报错。本文讲清空間占用来源,给出日誌切割、保留窗口與日常巡检清單,帮助把磁盘水位控制在安全区間。

站点运营

站点运营:日誌切割與磁盘空間自查,別让寫满的磁盘拖慢整站响應

站点运营的日常工作里,磁盘空間是那種平时没人看、出事才知道的指标。它不像證书過期那样有明确提醒,也不像 5xx 那样立刻被用戶投诉,而是先悄悄让寫入變慢,再让响應排队,最後才演變成整站不可用。對依赖搜尋蜘蛛持續訪問的站点来说,這段時間差恰好是最容易丢抓取量的窗口。

磁盘寫满时,最先出問题的往往不是“打不開”

磁盘接近满载时,站点通常不會马上返回错誤頁,而是出現一系列让人摸不着头脑的現象:

  • 頁面生成變慢,動態頁尤其明顯,因為模板缓存和會话文件寫不進去;
  • 搜尋蜘蛛訪問时偶發超时或 5xx,日誌里能看到明顯的响應時間波動;
  • 後台發布内容失敗,或者内容寫入了但附件没存下来;
  • 日誌本身也寫不進去,于是“出問题”的那段時間恰好没有日誌可查。

這几種現象的共同点是:来源看似分散,根源却都指向同一個磁盘水位。所以排查抓取下降时,先看一眼磁盘用量,往往比翻十几頁日誌更快。

三個常见的空間占用大戶

  • 訪問日誌與错誤日誌:被掃描器掃、被爬虫高频抓取、被接口轮询,都會以文本形式累积在磁盘上。一個訪問量中等的站点,一年不切割的原始日誌就能吃掉几十 GB。
  • 歷史备份文件:自動备份如果只做“生成”不做“淘汰”,每天一份、每份几百 MB,很快就能堆满整個分区,而且這些文件通常還放在同一块盘上。
  • 缓存與临时文件:頁面缓存、缩略图缓存、會话文件、上传临时目錄,平时不起眼,一旦清理任務失敗或者進程異常登出,残留文件會成規模堆积。

日誌切割與保留策略

按天切割,按大小兜底

優先按天切割,同时设一個体积上限。某些目錄被高频掃描时,一天的日誌量可能異常大,只按天切會让單文件大到难以打開。按天加按大小双重触發,既方便定位某一天的抓取情况,也避免出現打不開的巨型文件。

保留窗口與實际用途對齐

日誌保留多久,取决于你真正會回看多久。只用于日常抓取观察的,保留 7 到 30 天通常够用;需要做季度對比或者事故回溯的,可以定期把聚合後的統計结果單獨存下来,原始明细則不必長期保留。压缩後再归档,能顯著降低占用。

一次可执行的巡检清單

  1. 查看各分区使用率,重点關注日誌、备份、缓存所在的分区,而不是只看根分区。
  2. 按目錄統計体积,找出排名前十的大目錄,確認每一個都有明确归属。
  3. 检查日誌切割任務是否真的在跑,最近一次切割产物是否存在、是否可讀。
  4. 核對备份文件數量與保留策略是否一致,刪除失敗的任務要單獨记錄。
  5. 清理临时目錄和過期會话文件,確認清理任務有日誌、有成功率记錄。
  6. 检查資料库的二進制日誌、慢查询日誌、临时表空間,這些也常常在同一块盘上。
  7. 確認磁盘水位回到安全线以下後,再去看抓取日誌的响應時間是否同步恢复。

告警要设阈值,不要只设“挂了”

只监控“站点是否可訪問”,等于只在结果层面报警。更實用的做法是给磁盘水位设两級阈值:超過七成时提醒,超過八成五时告警,並附带占用增長最快的目錄。這样你拿到告警时,已经知道该去清理什么,而不是從头排查。

磁盘清理不是一次性任務,它更像一個需要持續微調的配置項。真正省事的做法,是让切割、归档、淘汰三件事都自動化,並把它們的执行结果纳入日常巡检。

最後提醒一句:清理前先確認哪些日誌還有用。有些站点在排查抓取異常时,恰好需要最近几天的原始日誌,如果清理策略把窗口压得太短,關键时刻反而没有依據。空間和可追溯性之間,留一点余量更稳妥。