Files
LokiStack/backend/services/loki_config_parallelism_test.go
opsx fbbd3a3c27
CI / Backend (go vet + test) (push) Waiting to run
CI / Frontend (lint + build + test) (push) Waiting to run
refactor(ai): 砍掉 /aiops 整页,模型配置迁入系统设置,浮窗助手保留
评估结论落地:整页分析只喂聚合统计(模型看不到日志原文),结论价值低于 /analysis
图表自身;浮窗助手携带真实查询样本,价值成立。
- 删 /aiops 页面与路由(菜单去项);llmProviders 迁 lib 共用
- 模型配置重做为设置页「AI 模型接入」区:状态严谨映射——供应商/模型按已存
  baseUrl/model 正确回显(自定义供应商显示 BaseURL 与自定义模型输入,不再重置),
  API Key 掩码占位、留空或掩码保存均沿用旧值(不回传掩码)
- 后端删 /ai/analyze 与信号采集链路;/ai/chat 保留(上下文由前端日志样本注入)
2026-11-01 00:46:38 +08:00

32 lines
902 B
Go

package services
import "testing"
// 查询并行度必须跟部署的 CPU 核数对齐。
//
// 事故背景:曾经写死 8,而部署只有 4 核 → 多个子查询互相抢 CPU,
// 实测 76% 的调度周期被限流,连 label values 都要 20 秒。
// 现在改成从 resourcesCPU 推导,用户在界面改 CPU 时并行度自动跟随。
func TestQueryParallelism(t *testing.T) {
cases := []struct {
cpu string
want int
}{
{"4", 4},
{"8", 8},
{"2", 2},
{"1", 2}, // 低于 2 核按 2 兜底
{"16", 12}, // 上限 12
{"", 4}, // 空值走默认
{"abc", 4}, // 非法值走默认
{"4000m", 4}, // 毫核写法
{"500m", 2}, // 0.5 核 → 向上取整 1 → 不低于 2
{"6000m", 6},
}
for _, c := range cases {
if got := queryParallelism(c.cpu); got != c.want {
t.Errorf("queryParallelism(%q) = %d, want %d", c.cpu, got, c.want)
}
}
}