跳转到内容

用量统计不显示且磁盘占用100% - CC Switch

Quick fix

多数相关 issue 仍未解决;升级到最新版本并关闭本地代理可恢复用量显示并降低磁盘IO。

报错原文
频繁sqlite写库,对hdd机械盘不友好,一启动ccswitch任务管理磁盘使用率就干满100%

该问题集群包含多个相关症状。核心机制是 cc-switch 的本地代理功能通过 SQLite 高频记录请求和会话用量数据。在 v3.18.0 中,SQLite 配置为 journal_mode=delete 和 synchronous=2(FULL),每个小事务都会触发多次 fsync,在 HDD 上产生约 250-350 倍的写放大。此外,后端每 60 秒的会话同步定时器使用默认的 MissedTickBehavior::Burst,在 Windows 休眠唤醒后会零间隔补发所有错过的 tick,对数千个会话日志文件做全量扫描,导致 CPU 长时间 100%。用量统计不显示的问题(#3138)在 v3.16.0 已恢复,Codex 用量统计问题(#7081)已在 PR #6905 中修复。opencode_session 的请求日志总时长恒为 0.0s(#6326)是因为源码中 latency_ms 硬编码为 0。开启路由总开关还会导致 WebView2 GPU 进程持续占用 10%-20% GPU(#5760)。

  1. 升级 cc-switch 到最新版本。v3.16.0 恢复了状态栏和主界面的剩余额度显示,PR #6905 修复了 Codex 用量统计问题。

  2. 如果不需要本地代理功能,在 cc-switch 设置中关闭本地代理总开关,可立即降低磁盘 IO 和 GPU 占用。

  3. 如果使用 HDD 机械盘,将 .cc-switch 数据库目录迁移到 SSD,或整机加装 SSD 以缓解随机写 IOPS 瓶颈。

  4. 对于 opencode_session 请求日志总时长恒为 0.0s 的问题,目前 latency_ms 在源码中硬编码为 0,需等待官方修复。

ToolClaude Code / Codex / OpenCode
Version3.15 - 3.20.1(受影响版本)
PlatformsWindowsmacOS
升级后看不到剩余额度了怎么办?
Issue #3138 确认 v3.16.0 已恢复剩余额度显示,请升级到该版本或更高版本。
为什么开启路由后 GPU 占用偏高?
路由面板和用量统计界面的实时刷新持续触发 WebView2 重新渲染,导致空闲状态下 GPU 占用 10%-20%。关闭路由总开关即可恢复正常。
为什么 HDD 机械盘磁盘使用率被打满 100%?
本地代理通过 SQLite 高频记录请求日志,journal_mode=delete + synchronous=FULL 在 HDD 上产生数百倍写放大。关闭本地代理或将数据库迁移到 SSD 可缓解。
Windows 休眠唤醒后 CPU 持续 100% 怎么办?
后端 60 秒会话同步定时器使用 Burst 策略,唤醒后补发所有错过的 tick 导致全量扫描。目前该问题(#5164)仍处于 open 状态,临时方案是重启 cc-switch。
Codex 用量统计显示异常怎么办?
Issue #7081 确认该问题已在 PR #6905 中修复,请升级到包含该修复的版本。
opencode_session 请求日志总时长为什么恒为 0.0s?
session_usage_opencode.rs 的 insert_opencode_message 中 latency_ms 硬编码为 0、first_token_ms 硬编码为 None。该问题(#6326)目前仍处于 open 状态,需等待官方修复。

这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。