返回首页

gbase数据、南大通用产品文档:GBase8a常用并行度参数调整提升性能

更新日期:2024年09月11日

线程池并行度参数在采用默认值的情况下,
可能会因服务的线程池较小而单个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
表示用于接收客户端连接的线程池个数,影响吞吐量。

参数说明:设置执行作业所使用的内存。
该参数属于USERSET 类型参数,请参考表15-1 中对应设置方法进行设置。
取值范围:0,或大于32M 的整型,默认单位为KB。
默认值:0
须知:

如果设置的query_mem 值大于0,
在生成执行计划时,
优化器会将作业的估算内存
调整为该值。

如果设置值为负数或小于32MB,将设置为默认值0,此时优化器不会根据该值调
整作业的估算内存。

-P
集群使用的端口号,默认5258,可选参数
-D
可选参数-D 的参数值,指定登录时默认的数据库(数据库必
须存在),可选参数
--nice_time_forma
指定用户操作耗时的最小精度,使用此参数,精确到毫秒,
不使用,精确到秒。可选参数。
-c
使用此参数,用于使用hint 优化方式。可选参数;
--force,-f
批量执行SQL 文件时,
如果中间有SQL 执行报错,
强制执行
后续SQL,可选参数;
--verbose,-v
冗长模式。产生更多的输出。可以多次使用该选项以产生更
多的输出。(例如,-v -v -v 甚至可以在批处理模式产生表输
出格式)。
--version,-V
显示版本信息并退出。
--vertical,-E
垂直输出查询输出的行。没有该选项,可以用\G 结尾来指定
单个语句的垂直输出。
--execute=statement,
-e statement
执行语句并退出,可以是多个语句,多个SQL 以“;”隔开,
可选参数;
--silent,-s
沉默模式。产生少的输出。可以多次使用该选项以产生更少

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
224
参数名称


的输出。
--skip-column-names,
-N
在结果中不写列名。
--skip-line-numbers,
-
L
在错误信息中不写行号。当你想要比较包括错误消息的结果
文件时有用。
--html,-H
产生HTML 输出。
<、<<、EOF 接收输入的方式,可用于批量执行SQL 文件,
可选参数。
示例
示例1
[gbase@gcluster1 etc]$ gccli -ugbase -p
GBase client 9.5.3.17.117651. Copyright (c) 2004-2020, GBase.
All Rights
Reserved.
gbase> use vc myvc;
Query OK, 0 rows affected (Elapsed: 00:00:00.01)
示例2
$ gccli -uroot –p****** -Dgbase
-vvv -e"select count(*) from user;select user
from user";
--------------
select count(*) from user
--------------
+----------+
| count(*) |
+----------+
|
2 |
+----------+
1 row in set (Elapsed: 00:00:00.00)
--------------
select user from user
--------------
+------------------+

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
225
| user
|
+------------------+
| gbase
|
| root
|
+------------------+
2 rows in set (Elapsed: 00:00:00.00)
Bye
示例3
$ cat 1.sql
select count(*) from user;
select user from user;
$ gccli -uroot –p****** -Dgbase -h192.168.1.1,192.168.1.2 -vvv <1.sql
--------------
select count(*) from user
--------------
+----------+
| count(*) |
+----------+
|
2 |
+----------+
1 row in set (Elapsed: 00:00:00.01)
--------------
select user from user
--------------
+------------------+
| user
|
+------------------+
| gbase
|
| root
|
+------------------+
2 rows in set (Elapsed: 00:00:00.00)
Bye

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
226