执行摘要
移除 KV Offload 中 worker 侧虚拟统计
该临时代码是 RFC #44008 中约定的清理项。PR #43877 在调度器侧独立实现了统计收集,worker 侧返回空统计对象不再有意义。删除可避免误导性代码路径,并让测试更加直接。
简单、安全的清理 PR,值得快速合并,可作为 kv-connector 模块代码整洁的参考案例。
没有 review 评论,只有 reviewer orozery 的审批通过。
该临时代码是 RFC #44008 中约定的清理项。PR #43877 在调度器侧独立实现了统计收集,worker 侧返回空统计对象不再有意义。删除可避免误导性代码路径,并让测试更加直接。
简单、安全的清理 PR,值得快速合并,可作为 kv-connector 模块代码整洁的参考案例。
没有 review 评论,只有 reviewer orozery 的审批通过。
get_kv_connector_stats() 方法中 if self.connector_worker is not None: return OffloadingConnectorStats() 及注释。方法简化为:优先返回调度器统计,否则返回 None。test_cpu_offloading_metrics 中用于等待 worker 统计刷新的 dummy generate 循环及对应的 deadline 变量。由于 worker 不再产生空统计,测试可直接检查调度器统计。| 文件 | 模块 | 状态 | 重要度 |
|---|---|---|---|
vllm/distributed/kv_transfer/kv_connector/v1/offloading_connector.py |
KV 连接器 | modified | 5.22 |
tests/v1/kv_connector/unit/test_offloading_connector.py |
测试 | modified | 4.98 |
vllm/distributed/kv_transfer/kv_connector/v1/offloading_connector.py
core-logic
核心变更文件,删除了 get_kv_connector_stats 中 worker 侧的空统计返回及 TODO 注释。
# vllm/distributed/kv_transfer/kv_connector/v1/offloading_connector.py
def get_kv_connector_stats(self) -> KVConnectorStats | None:
# 优先使用 scheduler 侧统计;worker 侧不再返回空统计
# (PR #43877 已解耦调度器统计收集 )
if self.connector_scheduler is not None:
return self.connector_scheduler.get_stats()
return None
tests/v1/kv_connector/unit/test_offloading_connector.py
test-coverage
移除了因 worker 统计而引入的 dummy generate 轮询循环,使测试更简洁。
# tests/v1/kv_connector/unit/test_offloading_connector.py
# 此前此处有一段 retry 循环(已删除),其作用是通过 dummy generate
# 驱动异步统计刷新。删除后测试直接检查调度器侧统计值。
store_bytes = _get_counter_value("vllm:kv_offload_store_bytes")
assert store_bytes > 0, f"Expected store_bytes > 0, got {store_bytes}"
# ... 后续断言保持不变
当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。
风险极低:删除的代码是此前临时标记的 TODO,且实际不产生有效数据。若将来重新需要 worker 侧统计,可基于 #43877 的调度器路径扩展。无性能或兼容性影响。
影响范围小,仅涉及 OffloadingConnector 的 get_kv_connector_stats 方法及一个测试函数。不影响任何公共指标或用户可见行为。
参与讨论