连接池参数
当使用连接池访问数据库时,在系统运行过程中,数据库连接是被当作对象存储在内存中的,当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接来使用。用户使用完毕后,数据库并非将连接关闭,而是将连接放回连接池中,以供下一个请求访问使用。
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
取值范围:字符串
该参数策略由以下三个值组成:
- 第一个值的取值为0~1,表示DN已使用内存占总可用内存比例。如果已使用内存占用达到该值时,清理1/4的stream线程,继续执行第二个取值的判断。
- 第二个值的取值为0~1,表示DN上syscache内存占总可用内存比例。如果syscache内存占用达到该值时,继续执行第三个取值的判断。
- 第三个值的取值为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。有以下两个操作:
- 由辅助线程监控内存占用,如果整体内存占用到80%时,清理1/4的stream线程,并判断syscache占用是否超过总占用内存的30%,如果大于30%,则清理大于64MB的Readcommand阶段pg线程的syscache。
- stream线程在空闲大于30s,且syscache占用大于64MB,则清理syscache。