首批通过分布式安全可靠测评,为关键业务系统打造
如何配置集群的 CPU 并发数
更新时间:2023-11-14 03:16
本文主要介绍如何通过配置项 workers_per_cpu_quota 与 cpu_quota_concurrency 配置集群中每个 CPU 的并发数。
在 OceanBase 数据库中,cpu_quota_concurrency 配置项用于设置集群中每个 CPU 所允许的最大并发数,也可以理解为活跃线程数。对于 OceanBase 数据库 V1.X 版本,该配置项默认为 2;对于 OceanBase 数据库 V2.X 版本,该配置项默认为 4,取值范围为 [1, 10] 。
设置该配置项时,您需要结合实际情况进行设置。
该配置项值设置太大时,可能会导致部分线程分配不到 CPU。
这是由于 CPU 可以扩展出的 worker 线程数是有限制的。
workers_per_cpu_quota参数用于设置集群中每个 CPU(也即 cpu_quota)可以扩展出的 worker 线程数,默认为 10,取值范围为 [2, 20]。为了确保每个线程都能分配到 CPU,两个参数的设置需要满足workers_per_cpu_quota>cpu_quota_concurrency。例如,某个租户的资源池中包含 3 个 CPU,此时将
workers_per_cpu_quota设置为 8,cpu_quota_concurrency设置为 10,表示针对该租户可以扩展出的 worker 线程数为 24,但是允许的最大并发数为 30,会导致 6 个线程无法分配到 CPU。该配置项设置太小时,可能导致 RT(Response Time,响应时间) 高、内部任务处理不及时(比如迁移 unit 等)、CPU 利用不充分等。
例如,某个租户的资源池中包含 3 个 CPU,此时将
workers_per_cpu_quota设置为 8,cpu_quota_concurrency设置为 5,表示针对该租户可以扩展出的 worker 线程数为 24,但是允许的最大并发数为 15,则对于该租户来讲,可以同时运行的最大线程数为 15,但是实际该租户是可以支撑 24 个线程同时运行的,会导致 CPU 利用不充分。有关上述两个参数的详细介绍,参见《OceanBase 数据库 参考指南》中的 系统配置项 章节。