企业终端安全软件环境下运行 Cindy 时整机长时间高 CPU、交互明显变慢
- Dominant language
- TypeScript
- Stars
- 2.7k
- Forks
- 395
- Avg merge
- 21h 48m
- Merged PRs (30d)
- 776
Description
**客户端版本**: 0.1.66
**反馈类型**: bug
---
## 现象
在装有企业终端安全软件(EDR + 终端准入客户端,含 minifilter 文件过滤驱动,未下发白名单)的 8 核受管办公机上使用 Cindy 时,整机 CPU 长时间处于 50%–98%,交互明显变慢。想请官方确认:Cindy 侧(随附组件签名、自动升级与升级期备份、Agent 子进程创建频率)是否存在可优化的放大因素。
用Workbuddy诊断分析的结论:一句话结论:不是 Cindy 本身吃 CPU,而是 Cindy 的开发行为(海量文件读写 + 频繁起子进程)触发了亚信安全 EDR 的全量审计。EDR 的 minifilter 驱动在内核层拦截每一次文件操作,用户态的 AisEsmEdr.exe 负责算哈希、验签名、序列化、上报,两者叠加把机器拖慢。
## 复现步骤
1. 在终端安全软件开启最高级别文件实时监控、且未配置白名单的受管电脑上安装并启动 Cindy
2. 用 Agent 持续执行偏文件/进程密集的任务(代码检索、批量读写、git 操作等)30 分钟以上
3. 对比不运行 Cindy 时的整机 CPU 与安全类进程 CPU/文件 IO 基线
## 期望行为
- 在受管终端环境下的额外开销可预期、可解释、可优化
- 随附的全部动态库与命令行工具签名完整,避免安全软件走“验签失败”分支
- 自动升级支持增量或可调频率;升级时不再整份复制大体积数据库形成历史副本
- 官方提供一份“企业杀软/EDR 环境排查与最小排除项”指引,便于用户与 IT 沟通
## 实际行为
- 任务期间文件读写与子进程创建频繁:一分钟内全机新增约 230 个进程中,Cindy 相关约 23 个(约 10%)
- Cindy 进程当日累计 CPU 约 1.9 核·小时,是该机用户态进程中最高的一档
- 自动升级约每 2–4 天一次,且每次升级会把数据目录内数十 MB 的数据库整份复制留存,当前已累积 3 份历史副本
- 数据目录总量约 1.6 GB,包含高频写入的数据库与 WAL 文件
## 复现频率
全天存在(用户确认:不只是任务执行期间,Cindy 空闲时机器也持续高 CPU),已持续多日;无 Cindy 任务的夜间同样可观察到安全类进程高占用。
## 已尝试
- 自行采样区分内核态/用户态、按进程归属统计 CPU 与文件 IO,输出全机 CPU 账本
- 确认系统自带防病毒已被策略禁用,不存在两套实时代码扫描共存
- 已向 IT 申请目录/进程白名单与降低“读取时扫描”,流程中
- A/B 实验:人为加入约 175 次/秒的小文件读写,观察安全类进程 CPU 是否随之上升
## 诊断摘要(已脱敏,用户同意公开)
- 稳态下安全类进程单独占用约 0.6 个逻辑核、多个时刻打满 1 核,而其自身日志显示队列为 0、无哈希需求、无验签工作
- 全机 CPU 账本:安全类进程合计约占全部用户态 CPU 的 60%;Cindy 全家(主程序 + Agent CLI + 子进程)约占 14%
- Cindy 完全空闲时安全类进程仍以半核到满核运行;夜间无人使用时其组件仍在持续处理文件事件
- 加入约 175 次/秒小文件读写期间,安全类进程 CPU 无可测变化(中位数 73.9 → 74.1 → 71.3,单位=单核百分比)
- 两项原始怀疑经复核**未被证实**,仅列为待官方排查的候选项:① 随附动态库无签名导致安全软件反复验签失败重试(同机另一款 Electron 应用附带同样多个未签名文件、相关指标同量级;所谓峰值时段安全软件的验签计数为 0)② 自动升级导致安全软件缓存失效引发全量重扫(升级日与非升级日指标同量级;重扫量约为本机该应用全部可哈希文件数的十几倍;升级 8 小时后缓存已热仍满载)
- 倾向结论:稳态高 CPU 的主体在终端安全软件侧,但 Cindy 的文件/进程活动量(约 10%–15%)与升级、备份行为仍有优化空间,故提交本 issue 请官方复核
---
**版本区域**: CN
**OS**: win32 x64 (10.0.19044)
**Harness**: Pi
**Model ID**: ` csot-sz-cloud/Qwen3.8-Flash-Next `
**界面语言**: zh-CN
Contributor guide
Research direction
No source file or test is named. Start with the Windows reproduction steps and compare Cindy, Agent, child-process, file-I/O, upgrade, and EDR CPU baselines in idle and active states. Done means identifying any Cindy-side amplification factors and documenting supported optimization or enterprise exclusion guidance.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- electron, typescript
- Domain
- desktop-dev, operating-systems, performance, security
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100