Prhub

#22555 [mem] Fix idle token_usage missing mamba_usage; add FIXME for naming

原始 PR 作者 hnyls2002 合并时间 2026-04-11 07:20 文件变更 3 提交数 2 评论 5 代码增减 +7 / -2

执行摘要

修复空闲路径下 token_usage 统计缺失 Mamba 使用量的问题,并添加字段命名澄清注释。

根据PR body描述,空闲路径在#12014引入,而预填充/解码路径在#17862重构后已正确包含mamba_usage,但空闲路径未同步更新,导致混合SSM场景下token_usage统计不准确。修复目的是确保内存使用统计的一致性。

该PR值得快速浏览,重点关注:

1) 修复逻辑如何确保混合SSM场景下统计一致性。
2) FIXME注释揭示的字段命名技术债务,可作为未来API设计参考。对于深入理解内存管理或Mamba集成的工程师有参考价值。

讨论亮点

由于review_comments_count为0,没有公开的review讨论。从提交历史看,作者分两次提交:先修复逻辑,后添加注释,表明是自审自合并的PR。

实现拆解

实现分为两部分:

1) 在scheduler_runtime_checker_mixin.py的check_memory方法中,当is_hybrid_ssm=True时,将token_usage计算从直接使用full_token_usage改为max(full_token_usage, mamba_usage),与预填充/解码路径逻辑对齐。
2) 在io_struct.py和metrics_collector.py的token_usage字段定义处添加FIXME注释,澄清该字段实际含义为跨所有内存池的最大使用率,并指出重命名需要API弃用流程。

文件 模块 状态 重要度
python/sglang/srt/managers/scheduler_runtime_checker_mixin.py scheduler modified 8.0
python/sglang/srt/managers/io_struct.py io_struct modified 4.0
python/sglang/srt/observability/metrics_collector.py observability modified 4.0

关键符号

check_memory _get_mamba_token_info _get_token_info

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

风险较低:

1) 核心变更仅涉及统计计算逻辑,不影响实际内存分配或调度决策。
2) 修改范围小(仅3个文件,9行变更),且与现有预填充/解码路径逻辑对齐,回归风险可控。
3) 添加的FIXME注释为纯文档性质,无运行时影响。潜在风险在于token_usage字段的命名误导性可能影响监控系统解读,但注释已明确说明。

影响范围有限:

1) 对用户:无直接影响,仅内部统计修复。
2) 对系统:确保混合SSM(Mamba)场景下内存使用统计的准确性,有助于监控和调试。
3) 对团队:澄清字段含义为未来API重构(如重命名)奠定基础,但当前保持兼容性。

统计字段命名误导 混合 SSM 场景一致性

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论