云数据库 GAUSSDB-线程池:resilience_threadpool_reject_cond

时间:2024-11-13 14:45:17

resilience_threadpool_reject_cond

参数说明用于控制线程池过载逃生的线程池使用率比例。该参数仅在GUC参数enable_thread_pooluse_workload_manager打开时生效。

参数类型:字符串

参数单位:

取值范围

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

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

示例:

resilience_threadpool_reject_cond = '50,90'

表示线程池使用率超过90%后,禁止新连接接入并kill堆积的会话,kill会话过程中线程池使用率下降到50%时,停止kill会话并允许新连接接入。

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

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

设置建议推荐使用默认值。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。

  • 线程池使用率可以通过DBE_PERF.local_threadpool_status视图查询获得;线程池设置的初始线程池线程数目可以通过查询thread_pool_attr参数获得。
  • 该参数如果设置的百分比过小,则会频繁触发线程池过载逃生流程,会使正在执行的会话被强制退出,新连接短时间接入失败,需要根据实际线程池使用情况慎重设置。
  • recover_threadpool_percent和overload_threadpool_percent的值可以同时为0,除此之外,recover_threadpool_percent的值必须要小于overload_threadpool_percent,否则不会生效。
  • use_workload_manager参数关闭的情况下,如果打开bypass_workload_manager,该参数也会生效,但是因为bypass_workload_manager是SIGHUP类型,用reload方式设置后需要重启数据库才会使得当前功能生效。
support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0333.html