文档中心MogDBMogDB StackUqbar
v5.0

文档:v5.0

支持的版本:

其他版本:

线程池

enable_thread_pool

参数说明:控制是否使用线程池功能。该参数属于POSTMASTER类型参数,请参考GUC参数分类中对应设置方法进行设置。

取值范围:布尔型

  • on表示开启线程池功能。
  • off表示不开启线程池功能。

说明:在开启线程池下,逻辑复制连接数据库需要使用HA端口。

默认值:off

thread_pool_attr

参数说明:用于控制线程池功能的详细属性,该参数仅在enable_thread_pool打开后生效,仅sysadmin用户可以访问。该参数属于POSTMASTER类型参数,请参考GUC参数分类中对应设置方法进行设置。

取值范围:字符串,长度大于0

该参数分为3个部分,'thread_num, group_num, cpubind_info',这3个部分的具体含义如下:

  • thread_num:线程池中的线程总数,取值范围是04096。其中0的含义是数据库根据系统CPU core的数量来自动配置线程池的线程数,如果参数值大于0,线程池中的线程数等于thread_num。线程池大小推荐根据硬件配置设置,计算公式如下:thread_num = CPU核数*35,thread_num最大值为4096。
  • group_num:线程池中的线程分组个数,取值范围是0~64。其中0的含义是数据库根据系统NUMA组的个数来自动配置线程池的线程分组个数,如果参数值大于0,线程池中的线程组个数等于group_num。
  • cpubind_info:线程池是否绑核的配置参数。可选择的配置方式有:1. '(nobind)' ,线程不做绑核;2. '(allbind)',利用当前系统所有能查询到的CPU core做线程绑核;3. '(nodebind: 1, 2)',利用NUMA组1,2中的CPU core进行绑核;4. '(cpubind: 0-30)',利用0-30号CPU core进行绑核。该参数不区分大小写。

默认值:'16, 2, (nobind)'

thread_pool_stream_attr

参数说明:用于控制stream线程池功能的详细属性,stream线程只在DN生效,该参数仅在enable_thread_pool打开后生效,仅sysadmin用户可以访问。该参数属于POSTMASTER类型参数,请参考GUC参数分类中对应设置方法进行设置。

取值范围:字符串,长度大于0

该参数分为4个部分,'stream_thread_num, stream_proc_ratio ,group_num ,cpubind_info',这4个部分的具体含义如下:

  • stream_thread_num:stream线程池中的线程总数,取值范围是04096。其中0的含义是数据库根据系统CPU core的数量来自动配置线程池的线程数,如果参数值大于0,线程池中的线程数等于stream_thread_num。线程池大小推荐根据硬件配置设置,计算公式如下:stream_thread_num = CPU核数*35,stream_thread_num最大值为4096。
  • stream_proc_ratio:预留给stream线程的proc数量比例,浮点类型,默认为0.2,预留proc计算方式为:stream_proc_ratio * stream_thread_num。
  • group_num:线程池中的线程分组个数,取值范围是0~64。其中0的含义是数据库根据系统NUMA组的个数来自动配置线程池的线程分组个数,如果参数值大于0,线程池中的线程组个数等于group_num。thread_pool_stream_attr的group_num需与thread_pool_attr的group_num配置和使用保持一致,若设置为不同值,以thread_pool_attr的group_num为准。
  • cpubind_info:线程池是否绑核的配置参数。可选择的配置方式有:1. '(nobind)' ,线程不做绑核;2. '(allbind)',利用当前系统所有能查询到的CPU core做线程绑核;3. '(nodebind: 1, 2)',利用NUMA组1,2中的CPU core进行绑核;4. '(cpubind: 0-30)',利用0-30号CPU core进行绑核;5. '(numabind: 0-30)',在NUMA组内利用0-30号CPU core进行绑核。该参数不区分大小写。thread_pool_stream_attr的cpubind_info需与thread_pool_attr的cpubind_info配置和使用保持一致,若设置为不同值,以thread_pool_attr的cpubind_info为准。

默认值

stream_thread_num:16

stream_proc_ratio:0.2

group_num、cpubind_info

resilience_threadpool_reject_cond

参数说明:用于控制线程池过载逃生的堆积会话数占比。该参数仅在GUC参数use_workload_manager和enable_thread_pool打开时生效。该参数属于SIGHUP类型参数,请参考GUC参数分类中对应设置方法进行设置。

取值范围:字符串,长度大于0

该参数分为recover_threadpool_percent、overload_threadpool_percent 2部分,这2个部分的具体含义如下:

  • recover_threadpool_percent:线程池恢复正常状态的接入会话占线程池初始设置线程数的百分比,当已经接入的会话数小于线程池初始设置数乘以该值对应的百分比后,停止过载逃生并放开新连接接入,取值为0~INT_MAX,设置为多少表示百分之多少。
  • overload_threadpool_percent:线程池过载时的接入会话占线程池初始设置线程数的百分比,当已经接入的会话数大于线程池初始设置数乘以该值对应的百分比后,表示当前线程池已经过载,触发过载逃生kill会话并禁止新连接接入,取值为0~INT_MAX,设置为多少表示百分之多少。

默认值:'0,0',表示关闭线程池逃生功能。

示例

resilience_threadpool_reject_cond = '100,200'

表示已经堆积的会话数超过线程池初始设置的线程数的200%后禁止新连接接入并kill堆积的会话,kill会话过程中会话数恢复到线程池初始设置的线程数的100%以下时停止kill会话并允许新连接接入。

img 须知:

  • 已经堆积的会话数可以通过查询pg_stat_activity视图有多少条数据获得,需要过滤少量后台线程;线程池设置的初试线程池线程数目可以通过查询thread_pool_attr参数获得。
  • 该参数如果设置的百分比过小,则会频繁触发线程池过载逃生流程,会使正在执行的会话被强制退出,新连接短时间接入失败,需要根据实际线程池使用情况慎重设置。

enable_ios

参数说明:控制是否启动IOS服务。

该参数属于POSTMASTER类型参数,请参考表GUC参数分类中对应设置方法进行设置。

取值范围:布尔型

  • on表示启用。
  • off表示不启用。

默认值:off

enable_heap_async_prefetch

参数说明:控制是否对Astore全表扫描类场景启用预读功能。

该参数属于USERSET类型参数,请参考表GUC参数分类中对应设置方法进行设置。

取值范围:布尔型

  • on表示启用。
  • off表示不启用。

默认值:off (当enable_ios = off时,该参数无效。)

enable_uheap_async_prefetch

参数说明:控制是否对Ustore全表扫描类场景启用预读功能。

该参数属于USERSET类型参数,请参考表GUC参数分类中对应设置方法进行设置。

取值范围:布尔型

  • on表示启用。
  • off表示不启用。

默认值:off (当enable_ios = off时,该参数无效。)

ios_worker_num

参数说明:IOS线程池里面的ios_worker个数。

该参数属于POSTMASTER类型参数,请参考表GUC参数分类中对应设置方法进行设置。

取值范围:整型。最小值为1,最大值为100。

默认值:4

parallel_scan_gap

参数说明:开启并行扫描时(query_dop > 1),每个工作线程单次处理的页面数量。

该参数属于SIGHUP类型参数,请参考表GUC参数分类中对应设置方法进行设置。

取值范围:整型。最小值为64,最大值为4096。

默认值:128

ios_batch_read_size

参数说明:ios_worker每个批次下发给磁盘的预读页面个数。

该参数属于SIGHUP类型参数,请参考表GUC参数分类中对应设置方法进行设置。

取值范围:整型。最小值为64,最大值为1024。

默认值:64

max_requests_per_worker

参数说明:每个ios_worker的最大队列深度。当超过这一数量时,ios_worker线程无法接受新的请求,直到ios_worker中有一个被处理完毕,并移出任务队列。

该参数属于POSTMASTER类型参数,请参考表GUC参数分类中对应设置方法进行设置。

取值范围:整型。最小值为1,最大值为10。

默认值:2

min_table_block_num_enable_ios

参数说明:触发预读的Astore表大小阈值。只有当表的数据页总数大于等于该阈值时,才有可能触发预读。目前数据页大小为8kB。

该参数属于SIGHUP类型参数,请参考表GUC参数分类中对应设置方法进行设置。

取值范围:整型。最小值为65536(即512MB),最大值为6553600(即512GB)。

默认值:131072(1GB)

min_uheap_table_block_num_enable_ios

参数说明:触发预读的Ustore表大小阈值。只有当表的数据页总数大于等于该阈值时,才有可能触发预读。目前数据页大小为8kB。

该参数属于SIGHUP类型参数,请参考表GUC参数分类中对应设置方法进行设置。

取值范围:整型。最小值为65536(即512MB),最大值为6553600(即512GB)。

默认值:131072(1GB)

prefetch_protect_time

参数说明:预读buffer最大保护时间。

该参数属于SIGHUP类型参数,请参考表GUC参数分类中对应设置方法进行设置。

取值范围:整型。单位为毫秒。最小值为100,最大值为10000。

默认值:500

ios_status_update_gap

参数说明:更新IOS性能状态的时间间隔。

该参数属于SIGHUP类型参数,请参考表GUC参数分类中对应设置方法进行设置。

取值范围:整型。单位为秒。最小值为1,最大值为100。

默认值:1

thread_pool_committer_max_retry_count

参数说明: 设置线程池committer睡眠前的最大重试次数。

该参数属于POSTMASTER类型参数,请参考表GUC参数设置方式中对应设置方法进行设置。

取值范围: 整型,1-2147483647

默认值: 10

thread_pool_committerctl_max_retry_count

参数说明: 设置线程池committerctl睡眠前的最大重试次数。

该参数属于POSTMASTER类型参数,请参考表GUC参数设置方式中对应设置方法进行设置。

取值范围: 整型,1-2147483647

默认值: 10

thread_pool_worker_num_per_committer

参数说明: 设置线程池中worker线程数与committer线程数的比例。

该参数属于POSTMASTER类型参数,请参考表GUC参数设置方式中对应设置方法进行设置。

取值范围: 整型,1-2147483647

默认值: 8

Copyright © 2011-2024 www.enmotech.com All rights reserved.