/** * resolveWorkerCount — 根据配置计算实际 Worker 数量 * * @param config Worker 数量配置 * - number: 显式指定(clamp 到 [1, 64]) * - 'auto': 等于检测到的 CPU 核心数 * - 'auto-1': 等于 CPU 核心数 - 1(至少 1) * @returns 实际 Worker 数量(保证 >= 1 且 <= 64) * * @example * ```typescript * resolveWorkerCount(4) // → 4 * resolveWorkerCount('auto') // → CPU 核心数(如 8) * resolveWorkerCount('auto-1') // → CPU 核心数 - 1(如 7) * resolveWorkerCount(0) // → 1(最小值保护) * resolveWorkerCount(100) // → 64(硬上限保护) * ``` */ export declare function resolveWorkerCount(config: "auto" | "auto-1" | number): number; /** * detectCpuCount — 检测可用 CPU 核心数 * * 优先级: * 1. os.availableParallelism()(Node.js 19.4+) * - 原生感知 cgroups v2(Docker / K8s 资源限制) * - 无需手动读取 cgroup 文件 * 2. cgroup v1 降级检测 * - 读取 /sys/fs/cgroup/cpu/cpu.cfs_quota_us 和 cpu.cfs_period_us * - 计算 Math.ceil(quota / period) 作为核心数上限 * - 取 min(os.cpus().length, cgroup 限制) * 3. os.cpus().length * - 最终降级,物理/逻辑核心数 * * @returns 可用 CPU 核心数(至少 1) */ declare function detectCpuCount(): number; /** * adjustForCgroupV1 — cgroup v1 CPU 配额检测(Docker 旧版本降级) * * Docker 使用 cgroups 限制容器 CPU 配额: * - cpu.cfs_quota_us: 容器可使用的 CPU 时间(微秒/周期) * - cpu.cfs_period_us: 一个调度周期的长度(微秒,通常 100000 = 100ms) * - 有效核心数 = ceil(quota / period) * * 例如: * quota = 200000, period = 100000 → 2 核 * quota = 150000, period = 100000 → 2 核(ceil) * quota = -1 → 无限制,使用 fallback * * @param fallback os.cpus().length 的值(当 cgroup 不适用时使用) * @returns 调整后的 CPU 核心数 */ declare function adjustForCgroupV1(fallback: number): number; /** * @internal 仅供单元测试直接访问内部函数 */ export declare const _internals: { readonly detectCpuCount: typeof detectCpuCount; readonly adjustForCgroupV1: typeof adjustForCgroupV1; readonly MAX_WORKERS: 64; }; export {};