Cell 温度状态转换

wesgine 使用温度模型管理 Cell 的活跃度和资源占用,在性能与资源消耗间取得平衡。


四种温度

温度含义资源占用
Hot有活跃 Run最大
Warmgoroutine/DB 连接保持中等
Cool磁盘保留,无 goroutine最小
Cold已停止无

转换规则

自动降温

Hot → Warm    Run 结束时
Warm → Cool   空闲 15 分钟后
Cool → Cold   空闲 N 天后(可配置)

自动升温

Cool → Warm   首请求到达时(100-500ms)
Cold → Warm   首请求到达时(1-3s,异步)

外设阻止降温

某些外设要求 Cell 保持 Warm:

这些外设存在时,Cell 无法从 Warm 降到 Cool。


Gateway 行为

Cool 态首请求

Gateway 收到指向 Cool Cell 的请求时:

  1. 同步 WarmUp:等待 Cell 热身完成
  2. 请求继续处理
  3. 对用户透明(略有延迟)

Cold 态首请求

Gateway 收到指向 Cold Cell 的请求时:

  1. 返回 503 Service Unavailable
  2. 附带 Retry-After: 5 头
  3. 异步启动 Cell 热身
  4. 客户端 5 秒后重试

温度调度器

Hypervisor 运行温度调度器,定期扫描所有 Cell:

  1. 检查每个 Warm Cell 的最后活跃时间
  2. 超过阈值的降温到 Cool
  3. Cool 超期的降温到 Cold
  4. 统计并报告温度分布

温度与 IMAP 计数

IMAP 邮件收信注册读取存储(数据库中的 email 账号),不读 CellSpec 声明:

仅探测失败时退回声明作估计(偏多 = 钉住 Warm,安全一侧)。


监控温度

Cell 状态查询

GET /cells/{id}/state

返回当前温度。

Hypervisor 快照

GET /admin/observe/snapshot

返回所有 Cell 的温度分布。


INV-SERVE-REACHABLE-01

wesgine serve 的可达性不随 Cell 数量增长:


相关文档