单机 16C 的机器,跑一个租户,cpu_quota_concurrency 默认是 4。
业务是典型 OLTP,线程大多在等 IO。我的理解是这个参数控制每个 CPU 配额上的并行线程数,设大能提升利用率但会增加 CPU 争抢。想请教:
- 生产上一般维持默认还是调高?
- 和
workers_per_cpu_quota的关系是什么? - 怎么判断调过头了(看哪些指标)?
先谢过。
单机 16C 的机器,跑一个租户,cpu_quota_concurrency 默认是 4。
业务是典型 OLTP,线程大多在等 IO。我的理解是这个参数控制每个 CPU 配额上的并行线程数,设大能提升利用率但会增加 CPU 争抢。想请教:
workers_per_cpu_quota 的关系是什么?先谢过。
cpu_quota_concurrency 的一般设置cpu_quota_concurrency 以提高并发度,进而提升整体资源利用率。但同时要注意监控 CPU 使用情况,防止过度配置导致的潜在问题。workers_per_cpu_quota 的关系cpu_quota_concurrency 定义了租户每个 CPU 配额允许的最大活跃线程数(即实际运行中的线程数)。workers_per_cpu_quota 则规定了每核 CPU 上可创建的工作线程最大数量。两者共同限制了一个租户内最多能有多少个线程处于就绪状态等待执行。workers_per_cpu_quota > cpu_quota_concurrency。这意味着即使你增加了 cpu_quota_concurrency 来支持更多并发操作,也需相应地调高 workers_per_cpu_quota,以便有足够的备用工作线程池来应对突发请求负载。cpu_quota_concurrency。cpu_quota_concurrency 主要影响 CPU 行为,但较高的值仍可能导致额外的内存占用上升,尤其是当数据库内部缓存被过度填充时。综上所述,在您当前场景下(单机 16 核心),维持 cpu_quota_concurrency 在默认 4 或略高于此水平通常是合理的。然而具体数值还需结合业务特点、硬件条件等因素综合考量,并辅以定期性能测试和监控数据分析来进行微调优化。希望这些建议对您有所帮助!
详情请参考: