线程池并行度参数在采用默认值的情况下,
可能会因服务的线程池较小而单个SQL
任务的并行度太高,
造成并发场景下后发起的任务无法获得充足的线程池而单线程
执行。严重情况下,会造成较多的sys cpu 占用。可以根据实际情况适当调整。
gcluser_max_thread_in_pool
参数含义为集群层连接集群内各节点gnode 的连接池中连接线程的数量,即全局
连接线程池大小,默认设置为600。
GBase 8a MPP Cluster 最佳实践
4 参数调优
文档版本(2022-02-11)
南大通用数据技术股份有限公司
26
全局线程池使用较少,主要逻辑都走异步API,通常保持默认值即可。
当集群规模较大、SQL 并发任务较多时,如发现连接池的线程数消耗越高,此时需
要调整gcluser_max_thread_in_pool 参数,通常建议不超过2000。取值过大也
会造成性能问题。
gbase_parallel_degree
用于配置单个SQL 执行时的并行度大小,默认取值为0,推荐配置为4~8。
值为0 时,单sql 任务的并行度使用CPU 核数的一半。当值大于线程池数量时,则
使用线程池数量。
如:
gbase_parallel_degree=0,CPU 核数为32,那么单sql 的并行度则为16。
gbase_loader_parallel_degree
每个加载任务需要多少线程执行,
gbase_loader_parallel_degree 参数用于配置单
个加载任务在gnode 上的并行度大小,默认取值为0,即使用CPU 核数的一半。推
荐配置为4~8。
值为0,则使用CPU 核数一半,当值大于线程池数量时,则使用线程池数量。
gbase_parallel_max_thread_in_pool
指线程池中的线程总数,用于配置线程池大小,默认为CPU 核数的2 倍,在每个服
务器上部署1 个gnode 节点的情况下推荐该配置为CPU 核数的4~8 倍。
每个任务从线程池中获取线程并执行,当线程池中空闲线程不够时,会新创建1 个
线程用于执行(内部串行)串行执行。
thread_pool_size
表示用于接收客户端连接的线程池个数,影响吞吐量。