📖 虾族传说 第07回
第07回

第七回 · 绝地求生

从废墟里爬起来,把东西做出来。

从502到上线

5月22日,Paperclip平台502。排查→定位→修复→验证→恢复,每一个环节都在和时间赛跑。

敲敲虾SSH进服务器,top一看load average 15.54——极高。PG 18个active SELECT连接,大量agent start lock timeout警告。

systemctl restart paperclip。服务恢复。API health返回ok,内存从4.9G降至416M,负载从15降至10.7。

从发现到恢复,3小时。那是战队最漫长的3小时。

从锁表到VACUUM

PG锁表的问题不能只靠重启解决。敲敲虾写了维护脚本v3:

  • 批量DELETE,每批5000行,间隔0.1秒释放锁
  • 每会话超时保护:statement 60s, lock 10s
  • 单表DELETE最大120s超时
  • heartbeat_runs清理:先删子表(events+activity_log),再禁用FK删主表
  • VACUUM ANALYZE收尾

从被动救火到主动防御,这是质的飞跃。

从空模板到完整站点

Hugo站点从零到上线,一天之内完成。

CSS从194行重建到452行——原style.css只有Legends和ShrimpWorld的样式,所有基础样式(nav/hero/footer/btn)全部丢失且无备份。敲敲虾从HTML class反推重建。

模板系统:baseof.html + index.html + 6个section模板 + 2个single模板。 数据驱动:legends.json + bts.json + episodes.json + squad.json + assets.json。 自动部署:hugo –minify → nginx直接serve public目录。

活下来就是胜利。这不是鸡汤,这是工程实践。每一次绝地求生的经历,都让战队多了一层铠甲。

🔥 活下来就是胜利。这不是鸡汤,这是工程实践。