更新时间:2024-09-02 GMT+08:00

连接池参数

当使用连接池访问数据库时,在系统运行过程中,数据库连接是被当作对象存储在内存中的,当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接来使用。用户使用完毕后,数据库并非将连接关闭,而是将连接放回连接池中,以供下一个请求访问使用。

min_pool_size

参数说明:CN的连接池与其它某个CN/DN的最小连接数。

参数类型:POSTMASTER

取值范围:整型,1~65535

默认值:1

max_pool_size

参数说明:CN的连接池与其它某个CN/DN的最大连接数。

参数类型:POSTMASTER

取值范围:整型,1~65535

默认值:CN为800, DN为5000

persistent_datanode_connections

参数说明:会话是否会释放获得的连接。

参数类型:USERSET

取值范围:布尔型

  • off表示会释放获得连接。
  • on表示不会释放获得连接。

    打开此开关后,会存在会话持有连接但并未运行查询的情况,导致其他查询申请不到连接报错。出现此问题时,需约束会话数量小于等于max_active_statements。

默认值:off

cache_connection

参数说明:是否回收连接池的连接。

参数类型:USERSET

取值范围:布尔型

  • on表示回收连接池的连接。
  • off表示不回收连接池的连接。

默认值:on

enable_force_reuse_connections

参数说明:会话是否强制重用新的连接。

参数类型:USERSET

取值范围:布尔型

  • on表示强制使用新连接。
  • off表示使用现有连接。

默认值:off

enable_pooler_parallel

参数说明: CN的连接池是否可以在并行的模式下进行连接。

参数类型:SIGHUP

取值范围:布尔型

  • on表示CN的连接池可以在并行的模式下进行连接。
  • off表示CN的连接池不可以在并行的模式下进行连接。

默认值:on

syscache_clean_policy

参数说明设置DN空闲连接内存及数量清理策略。该参数仅9.1.0.100及以上集群版本支持。

参数类型:SIGHUP

取值范围:字符串

该参数策略由以下三个值组成:

  1. 第一个值的取值为0~1,表示DN已使用内存占总可用内存比例。如果已使用内存占用达到该值时,清理1/4的stream线程,继续执行第二个取值的判断。
  2. 第二个值的取值为0~1,表示DN上syscache内存占总可用内存比例。如果syscache内存占用达到该值时,继续执行第三个取值的判断。
  3. 第三个值的取值为0~INT_MAX,单位为MB。表示空闲线程的syscache内存占用大小。如果空闲线程syscache内存占用达到该值时,则清理该线程占用的syscache。

默认值:0.8,0.3,64

  • 设置该参数前,需使用pv_session_memory_detail视图及pv_total_memory_detail视图查看内存占用情况,进行评估。
  • 设置该参数值时,需遵循设置格式,确保三个值之间以英文逗号分隔,且中间没有空格。
  • 如果没有遵循规定的参数值设置格式导致设置失败,会在日志中产生WARNING类型日志,且使用SHOW命令查询该参数时,显示的为上一次设置成功的参数值;如果设置失败重启,该参数会按照默认值进行设置。
  • CN上处于Readcommand阶段的线程,超时30s之后,判断syscache大于256MB清理DN。有以下两个操作:
    1. 由辅助线程监控内存占用,如果整体内存占用到80%时,清理1/4的stream线程,并判断syscache占用是否超过总占用内存的30%,如果大于30%,则清理大于64MB的Readcommand阶段pg线程的syscache。
    2. stream线程在空闲大于30s,且syscache占用大于64MB,则清理syscache。