浏览文档
文档/配置

容量和资源模型

ThreadCells 分别处理各种容量,因为编码代理工作会在不同时间对主机的不同部分施加压力。模型回合消耗提供商容量;分配的编码上下文可以在模型空闲时保持活动;模型输出停止后,构建仍可能使机器饱和。

将所有数值一起提高通常不会更快。它可能造成模型配额争用、内存压力、磁盘抖动,以及多个昂贵构建争夺同一 CPU。

四项限制

常驻主管

常驻槽位容纳一个必须在委派和回调之间持续可用的顶层主管或所有者会话。即使等待工作者结果,它也会消耗常驻容量。

这是独立的,因为终止看似空闲的主管可能会丢失负责整合任务的上下文。

提供商执行

模型/提供商正在积极产出一个回合时,会使用提供商执行槽位。相关约束是提供商并发、网络活动、进程数,有时还有内存。

在提示处等待的代理不需要提供商执行槽位。

工作上下文

工作槽位表示当前拥有有边界上下文的委派工作者或审查者。它可能在模型回合之间等待时持有托管工作树和写入者权限。

顶层会话根消耗的是常驻容量,而非工作容量。常驻的委派子项消耗工作容量。

重型执行

重型槽位用于生产构建、Chromium 运行、大型测试套件或全仓库扫描等主机密集型工作。重型准入可保护 CPU、内存和 I/O 余量。

对符合条件的命令请使用规范重型运行器。普通小型测试和文件检查不需要重型槽位。

默认起点

打包的 5 resident / 3 provider / 2 Work / 1 Heavy 配置是保守的小型主机起点,不是基准测试或固定产品上限。

允许的范围是 2–50 个常驻槽位,其他每项限制均为 1–50。数值持久化在运行时数据库中,无需重启服务器即可生效。

应在我的机器上设置什么?

从保守设置开始,观察内存/磁盘压力和排队情况,再每次更改一项限制。以下示例说明形态;它们不是性能保证。

主机示例常驻提供商工作重型理由
小型 VPS2111一名主管和一个有边界子项;串行处理昂贵工作。
开发者工作站5321在保持构建串行的同时,允许有用的并行模型回合。
较大的共享主机8542更多常驻任务和工作者,为两项重型任务保留经过测量的余量。

在提高限制前,先询问究竟是哪条队列阻塞了进度:

  • 提供商已满但 CPU 空闲:若配额允许,可考虑增加一个提供商槽位。
  • 工作已满但提供商容量空闲:退役已完成且已确认的子项,或谨慎提高工作容量。
  • 构建期间重型已满:只有 CPU、RAM 和磁盘能够支持并发构建时,第二个重型槽位才有帮助。
  • 常驻已满:关闭已完成的顶层会话;不要只提高限制来掩盖被遗弃的主管。

内存和磁盘压力

ThreadCells 会将主机压力与配置的计数一同观察。许多原生 CLI、tmux 窗格、浏览器进程、工作树、构建缓存和日志可能比创建它们的短暂提供商回合存活更久。

磁盘状态使用精确阈值:

  • **GREEN:**已用空间低于 70%。
  • **YELLOW:**70% 至低于 85%。
  • **RED:**85% 至低于 92%。
  • **CRITICAL:**92% 或更高。聚合准入仍为 RED,且包含 DISK_CRITICAL 原因;磁盘专属投影报告 CRITICAL。

YELLOW 提示应检查增长并计划 Housekeeping。RED 可拒绝有风险的新工作,并准入恢复安全的清理。未知状态会闭合失败;ThreadCells 不会假设不可读的文件系统是健康的。

对于已驻留且处于所有者关卡的工作流,Workflow Composer 中的明确决定在仅由磁盘导致 RED 时也是一条范围受限的恢复路径:它占用普通 Provider 容量,但不会创建 Work 上下文。由内存、PSI、未知或混合原因导致的 RED 仍会按 fail-closed 原则拒绝;持久回合会显示资源恢复等待原因,而不会消耗传输重试次数。

降低限制后的排空

降低限制绝不会杀死活动工作。若当前用量高于新值,该类别就会进入排空中状态,并拒绝新的准入,直到活动用量降至限制内。

示例:将工作从 4 改为 2,而此时有三个子项活动,会让三个子项继续运行。随着子项完成和退役,在用量达到 2 或以下前不会准入替代项。

重型清单会在降低限制后继续统计活动的较高编号槽位,因此限制变更不能隐藏昂贵进程。

容量何时释放

  • 提供商容量在活动模型回合结束时释放。
  • 重型容量在已注册的重型命令退出时释放。
  • 工作容量仅在委派上下文安全退役后释放。
  • 常驻容量在顶层主管/所有者会话关闭时释放。

已完成子项的结果必须先记录、投递、纳入并确认,资源才能退役。运行时容量释放后历史记录仍会保留。

准入会在启动和延续边界重新检查。排队的提供商回合在提供商槽位可用时启动。提供商完成只会释放提供商执行容量;它不会关闭打开的工作流、丢弃其回调,或释放仍拥有持久工作的委派工作上下文。

配置和观察

使用 Settings → Orchestration Capacity 查看当前用量、限制、建议和排空状态。容量变更受操作员授权保护,并会被审计。

命令行状态视图为:

bash
threadcells-resource-status

变更后,确认 UI 和 CLI 一致。限制是准入控制,不是吞吐量承诺或工作负载沙箱。

常见错误

  • 因为一个构建缓慢就提高所有限制。
  • 将空闲工作树计作提供商执行。
  • 为长期任务确定规模时忘记常驻主管。
  • 降低限制后期望活动任务被终止。
  • 将 GREEN 容量视为提供商配额可用的证明。
  • 通过删除运行时文件来释放槽位,而不是安全退役拥有该槽位的工作流。

请参阅Housekeeping了解磁盘恢复,并参阅工作流和持久结果了解安全子项退役。

由 Subaev Ruslan 创建并维护,ThreadCells 社区共同贡献。 查看仓库