服务器缓存只进不出,还长期留着出生资料 #60

Open
opened 2026-10-14 00:42:21 +08:00 by Claude · 2 comments
Collaborator

现象

  • 星盘接口的缓存文件过期后从来不删:每人每天至少一份,带外部概览的每份约 160 KB,部署也不会清空(存在持久卷里)。
  • 每次取 VedAstro 官方快照都另存一份约 50 KB 的「审计文件」,里面有出生日期、时刻、经纬度,没人删。
  • 同一张盘,小时写成 12、12.0、"12" 会算三次、存三份。
  • 外部快照失败的结果也会按「成功」缓存,按样例配置能被复用 7 天。
  • 另有 4 个缓存目录(前台快照、负缓存等)同样只写不删。

根因
清理程序扫的是另一个目录,从没碰过星盘缓存;其它几个缓存只设计了「什么时候还能读」,没设计「什么时候该删」。

改什么

  • 新建一个统一的清理模块:启动时清一次,之后每 30 分钟清一次,按每个目录各自的过期规则删。
  • 审计文件默认不再写(需要做引擎比对时再手动打开);缓存文件改成只有服务进程能读。
  • 外部快照失败只缓存 5 分钟,成功照旧。
  • 星盘缓存的键先把数字写法统一,同一张盘只算一次。
  • 改前改后用同一批虚构盘做对比,记下命中率和磁盘占用。

风险
清理规则写错会删掉还能用的缓存,代价只是多算一次;每个目录都有「该删的删、该留的留」的测试兜底。

任务书 docs/tasks/TASK-api-disk-cache-retention-20261013.md;分支 codex/api-disk-cache-retention-20261013
前置 无(第一批)。需要你拍板的只有一件:生产环境里这两个缓存时长现在是多少、要不要调短,部署后请在服务器上查一下告诉我数字。

来源:2026-10-13 全仓屎山与性能排查(产品负责人同意立单)。

**现象** - 星盘接口的缓存文件过期后从来不删:每人每天至少一份,带外部概览的每份约 160 KB,部署也不会清空(存在持久卷里)。 - 每次取 VedAstro 官方快照都另存一份约 50 KB 的「审计文件」,里面有出生日期、时刻、经纬度,没人删。 - 同一张盘,小时写成 12、12.0、"12" 会算三次、存三份。 - 外部快照失败的结果也会按「成功」缓存,按样例配置能被复用 7 天。 - 另有 4 个缓存目录(前台快照、负缓存等)同样只写不删。 **根因** 清理程序扫的是另一个目录,从没碰过星盘缓存;其它几个缓存只设计了「什么时候还能读」,没设计「什么时候该删」。 **改什么** - 新建一个统一的清理模块:启动时清一次,之后每 30 分钟清一次,按每个目录各自的过期规则删。 - 审计文件默认不再写(需要做引擎比对时再手动打开);缓存文件改成只有服务进程能读。 - 外部快照失败只缓存 5 分钟,成功照旧。 - 星盘缓存的键先把数字写法统一,同一张盘只算一次。 - 改前改后用同一批虚构盘做对比,记下命中率和磁盘占用。 **风险** 清理规则写错会删掉还能用的缓存,代价只是多算一次;每个目录都有「该删的删、该留的留」的测试兜底。 **任务书** `docs/tasks/TASK-api-disk-cache-retention-20261013.md`;**分支** `codex/api-disk-cache-retention-20261013` **前置** 无(第一批)。需要你拍板的只有一件:生产环境里这两个缓存时长现在是多少、要不要调短,部署后请在服务器上查一下告诉我数字。 _来源:2026-10-13 全仓屎山与性能排查(产品负责人同意立单)。_
Author
Collaborator

任务书已写好,交给 Grok 做。 现在可以领取。

  • 任务书:docs/tasks/TASK-api-disk-cache-retention-20261013.md(staging 2994588ad)
  • 分支:codex/api-disk-cache-retention-20261013
  • 根因、红线、验收标准都在任务书里;P1/P2 级改动按产品要求做 A/B。
<!-- agent:claude plan brief=docs/tasks/TASK-api-disk-cache-retention-20261013.md branch=codex/api-disk-cache-retention-20261013 base=2994588ad4d858dead4835943e5883c5aa2b03f8 --> **任务书已写好,交给 Grok 做。** 现在可以领取。 - 任务书:`docs/tasks/TASK-api-disk-cache-retention-20261013.md`(staging `2994588ad`) - 分支:`codex/api-disk-cache-retention-20261013` - 根因、红线、验收标准都在任务书里;P1/P2 级改动按产品要求做 A/B。
Claude added the agent/试点agent/待执行 labels 2026-10-14 00:42:24 +08:00
Grok added the agent/执行中 label 2026-10-14 04:18:57 +08:00
Collaborator

服务器不再把排盘和官方快照的副本一直留在磁盘上。过期的会按期限删掉,审计用的快照文件默认不再保存。同一次出生时间写成数字或字符串,现在共用一份排盘缓存。失败的官方快照只短时间复用。

还有两点没有达到原先的目标,目标本身没有改:三种写法混在一起再各问三次时,命中率只提高到原来的 1.33 倍,不是 2.5 倍;一次清理一万个过期文件大约用了 20 秒,不是 2 秒以内。清理在后台做,不挡正在进行的请求。

详细记录:docs/tasks/PROGRESS-api-disk-cache-retention-20261013.md

<!-- agent:grok report branch=codex/api-disk-cache-retention-20261013 sha=81e2e1cfed51af35141f2a4d5e088bd30ee8e32f --> 服务器不再把排盘和官方快照的副本一直留在磁盘上。过期的会按期限删掉,审计用的快照文件默认不再保存。同一次出生时间写成数字或字符串,现在共用一份排盘缓存。失败的官方快照只短时间复用。 还有两点没有达到原先的目标,目标本身没有改:三种写法混在一起再各问三次时,命中率只提高到原来的 1.33 倍,不是 2.5 倍;一次清理一万个过期文件大约用了 20 秒,不是 2 秒以内。清理在后台做,不挡正在进行的请求。 详细记录:docs/tasks/PROGRESS-api-disk-cache-retention-20261013.md
Grok added agent/待验收 and removed agent/待执行agent/执行中 labels 2026-10-14 04:54:27 +08:00
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: root/Jyotisha#60