Files
LokiStack/backend
opsx 419a81c2af
CI / Backend (go vet + test) (push) Canceled after 0s
CI / Frontend (lint + build + test) (push) Canceled after 0s
perf(loki): 查询并行度改为自动跟随 CPU 核数(不再硬编码)
=== 问题 ===
max_query_parallelism 原来是硬编码值,改过两轮(8 → 6):
  - 8:4 核机器上 76% 调度周期被限流,label values 要 20 秒
  - 6:仍然高于核数,25% 周期限流,查询并没有更快
根因不是"该填几",而是**并行度只有一个正确值:等于 CPU 核数**。
把它做成可配置项反而是坑 —— 用户改了 CPU 忘了改并行度就出现错配。

=== 做法 ===
新增 queryParallelism(resourcesCPU):
  - 从部署记录的资源规格推导,模板渲染成 {{ .QueryParallelism }}
  - 容错:支持 "4000m"/"500m" 毫核写法(向上取整)
  - 边界:低于 2 核按 2,高于 12 核按 12(再高频只会互相抢 CPU)
  - 非法值/空值回退 4
用户在「组件部署」里改 CPU,并行度自动跟随,页面上不需要新字段。

=== 实测(4 核 + 并行 4)===
  by-app(15m)    11913ms  75 条序列   (并行 6 时 12438ms)
  label/namespace   38ms
  label/app         25ms
  label/pod         25ms
  限流 61/252 周期(仅重查询那几秒)
附带 TestQueryParallelism 覆盖 10 种输入(含毫核/越界/非法值)。
2026-10-30 15:41:38 +00:00
..