
# 资源管理
未对数据库资源做控制时，容易出现并发任务抢占资源导致操作系统过载甚至最终崩溃。操作系统过载时，其响应用户任务的速度会变慢甚至无响应；操作系统崩溃时，整个系统将无法对用户提供任何服务。DWS的负载管理功能能够基于可用资源的多少均衡数据库的负载，以避免数据库系统过载。
#### space_once_adjust_num
**参数说明** **：**空间管控和空间统计功能中，控制慢速构建与细粒度校准操作中每次处理的文件个数阈值。该参数8.1.3及以上集群版本支持。
**参数类型：**SIGHUP
**取值范围** **：**整型，0\~INT_MAX
- 0表示不启用慢速构建和细粒度校准功能。
**默认值：**300
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/note_3.0-zh-cn.png)
文件个数阈值影响数据库资源，建议合理设置。
#### default_partition_cache_strategy
**参数说明：**控制分区缓存的默认策略。该参数8.3.0及以上集群版本支持。
**参数类型：**USERSET
**取值范围**：枚举类型
- cache_each_partition_as_possible表示尽可能地缓存插入的数据，插入时遇到不同分区的数据并不一定将数据刷入CU。
- flush_when_switch_partition表示插入时数据属于不同分区就将数据刷入CU。
**默认值：**cache_each_partition_as_possible
#### max_active_statements
**参数说明：**设置全局的最大并发数量。该参数只在CN上应用且针对一个CN上的执行作业。
数据库管理员需根据系统资源（如CPU资源、IO资源和内存资源）情况，调整此数值大小，使得系统支持最大限度的并发作业，且防止并发执行作业过多，引起系统崩溃。
**参数类型：**SIGHUP
**取值范围**：整型，-1 ～ INT_MAX。设置为-1和0表示对最大并发数不做限制。
**默认值：**60
#### cgroup_name
**参数说明：**设置当前使用的Cgroups的名字或者调整当前group下排队的优先级。
即如果先设置cgroup_name，再设置session_respool，那么session_respool关联的控制组起作用，如果再切换cgroup_name，那么新切换的cgroup_name起作用。
切换cgroup_name的过程中如果指定到Workload控制组级别，数据库不对级别进行验证。级别的范围只要在1-10范围内都可以。
**参数类型**：USERSET
建议尽量不要混合使用cgroup_name和session_respool。
**取值范围**：字符串
**默认值：**DefaultClass:Medium
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/note_3.0-zh-cn.png)
DefaultClass:Medium表示DefaultClass下Timeshare控制组中的Medium控制组。
#### enable_cgroup_switch
**参数说明：**是否控制数据库执行语句时根据类型自动切换到TopWD组。
**参数类型**：USERSET
**取值范围**：布尔型
- on表示控制数据库执行语句时根据类型自动切换到TopWD组。
- off表示控制数据库执行语句时根据类型不自动切换到TopWD组。
**默认值：**off
#### memory_tracking_mode
**参数说明：**设置记录内存信息的模式。
**参数类型**：USERSET
**取值范围**：
- none，不启动内存统计功能。
- normal，仅做内存实时统计，不生成文件。
- executor，生成统计文件，包含执行层使用过的所有已分配内存的上下文信息。
- fullexec，生成文件包含执行层申请过的所有内存上下文信息。
**默认值：**none
#### memory_detail_tracking
**参数说明：**设置需要的线程内分配内存上下文的顺序号以及当前线程所在query的plannodeid。
**参数类型**：USERSET
**取值范围**：字符型
**默认值：**空
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/notice_3.0-zh-cn.png)
该参数不允许用户进行设置，建议保持默认值。
 #### enable_resource_track
参数说明：设置是否开启资源实时监控功能。该参数需在CN和DN同时应用。
**参数类型：**SIGHUP
**取值范围**：布尔型
- on表示打开资源监控。
- off表示关闭资源监控。
**默认值：**on
 #### enable_resource_record
**参数说明：** 设置是否开启资源监控记录归档功能。开启时，对于执行结束的记录，会分别被归档到相应的INFO视图（[GS_WLM_SESSION_INFO](https://support.huaweicloud.com/devg-dws/dws_04_0704.html)和[GS_WLM_OPERATOR_INFO](https://support.huaweicloud.com/devg-dws/dws_04_0701.html)）。此参数需在CN和DN同时应用。
**参数类型：**SIGHUP
**取值范围**：布尔型
- on表示开启资源监控记录归档功能。
- off表示关闭资源监控记录归档功能。
**默认值：**on
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/note_3.0-zh-cn.png)
新建集群默认值为on，升级场景该参数的默认值为保持前向兼容维持原值。
 #### enable_track_record_subsql
**参数说明：** 设置是否开启子语句记录归档功能。开启时，存储过程、匿名块内部的子语句会被记录归档到相应的INFO表（[GS_WLM_SESSION_INFO](https://support.huaweicloud.com/devg-dws/dws_04_0566.html)）。此参数为会话级参数，可在与CN的连接会话中设置生效，仅影响该会话连接中的语句；也可在CN和DN上同时设置，能全局生效。
**参数类型：**USERSET
**取值范围**：布尔型
- on表示开启子语句资源监控记录归档功能。
- off表示关闭子语句资源监控记录归档功能。
**默认值：**on
#### block_rule_cost
**参数说明：**设置查询过滤器触发的最小代价。该参数仅9.1.0.200及以上集群版本支持。
**参数类型：**USERSET
**取值范围**：整型，-1～INT_MAX
- 值为-1时，表示不根据cost判断是否对语句进行拦截，对所有语句进行查询过滤。
- 值为0时，表示对所有cost大于0的语句进行拦截，但特殊类型语句（cost为0）不进行语句拦截。
- 值大于0时，如果语句cost小于block_rule_cost值，则不进行拦截；否则，对语句进行拦截。
**默认值：**-1
 #### enable_user_metric_persistent
**参数说明：** 设置是否开启用户/资源池历史资源监控转存功能。开启时，对于[PG_TOTAL_USER_RESOURCE_INFO](https://support.huaweicloud.com/devg-dws/dws_04_0790.html)视图中数据，会定期采样保存到[GS_WLM_USER_RESOURCE_HISTORY](https://support.huaweicloud.com/devg-dws/dws_04_0567.html)系统表中；对于[GS_RESPOOL_RESOURCE_INFO](https://support.huaweicloud.com/devg-dws/dws_04_0977.html)视图中数据，会定期采样保存到[GS_RESPOOL_RESOURCE_HISTORY](https://support.huaweicloud.com/devg-dws/dws_04_0975.html)系统表中。
**参数类型：**SIGHUP
**取值范围**：布尔型
- on表示开启用户/资源池历史资源监控转存功能。
- off表示关闭用户/资源池历史资源监控转存功能。
**默认值：**on
#### user_metric_retention_time
**参数说明：**设置用户历史资源监控数据的保存天数。
**参数类型**：SIGHUP
**取值范围**：整型，0～3650，单位为天。
- 值等于0时，用户历史资源监控数据将永久保存。
- 值大于0时，用户历史资源监控数据将保存对应天数。
**默认值：**7
 #### resource_track_level
**参数说明：**设置当前会话的资源监控的等级。该参数只有当参数enable_resource_track为on时才有效。
**参数类型**：USERSET
**取值范围**：枚举型
- none，不开启资源监控功能。
- query，开启query级别资源监控功能，开启此功能会把SQL语句的计划信息（类似explain输出信息）记录到TopSQL中。
- perf，开启perf级别资源监控功能，开启此功能会把包含实际执行时间和执行行数的计划信息（类似explain analyze输出信息）记录到TopSQL中。
- operator_realtime, 开启operator级别资源监控功能，开启此功能后会记录实时运行的作业算子信息到TopSQL中，但不会持久化到历史TopSQL中。
- operator，开启operator级别资源监控功能，开启此功能不仅会把包含实际执行时间和执行行数的信息记录到TopSQL中，还会把算子级别执行信息刷新到TopSQL中。
**默认值：**query
#### fast_obs_tablesize_method
**参数说明：**设置快速计算列存v3和v3 hstore_opt表大小的方式。该参数仅9.1.0.100及以上集群版本支持。
**参数类型**：USERSET
**取值范围**：枚举型
- 0：通过list obs文件的方式计算表大小。
- 1：wlm后台统计的方式，通过pg_relfilenode_size计算表大小。
- 2：通过cudesc的每个文件的最大偏移和近似估算表大小。
**默认值：**2
#### fast_obs_dbsize_method
**参数说明：**设置快速计算OBS上db数据大小的方式。该参数仅9.1.0.100及以上集群版本支持。
**参数类型**：USERSET
**取值范围**：枚举型
- 0：直接根据obs桶来估算db大小。
- 1： 普通模式正常计算整个库的大小。
**默认值：**0
 #### resource_track_cost
**参数说明：**设置对当前会话的语句进行资源监控的最小执行代价。该参数只有当参数enable_resource_track为on时才有效。
**参数类型**：USERSET
**取值范围**：整型，-1～INT_MAX
- 值为-1时，不进行资源监控。
- 值大于或等于0时，对执行代价超过该参数值的语句进行资源监控。
**默认值：**0
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/note_3.0-zh-cn.png)
新建集群默认值为0，升级场景该参数的默认值为保持前向兼容维持原值。
 #### resource_track_duration
**参数说明：** 设置资源监控实时视图（参见[表1](https://support.huaweicloud.com/devg-dws/dws_04_0397.html#ZH-CN_TOPIC_0000001764491512__table16116143418462)）中记录的语句执行结束后进行历史信息转存的最小执行时间。当执行完成的作业，其执行时间不小于此参数值时，作业信息会从实时视图（以statistics为后缀的视图）转存到相应的历史视图（以history为后缀的视图）中。该参数只有当enable_resource_track为on时才有效。
**参数类型**：USERSET
**取值范围**：整型，0～INT_MAX，单位为秒。
- 值为0时，资源监控实时视图（[表1](https://support.huaweicloud.com/devg-dws/dws_04_0397.html#ZH-CN_TOPIC_0000001764491512__table16116143418462)）中记录的所有语句都进行历史信息归档。
- 值大于0时，资源监控实时视图（[表1](https://support.huaweicloud.com/devg-dws/dws_04_0397.html#ZH-CN_TOPIC_0000001764491512__table16116143418462)）中记录的语句的执行时间和排队时间之和超过这个值就会进行历史信息归档。
**默认值：**60s
 #### resource_track_subsql_duration
**参数说明：**设置过滤存储过程中子语句的最小执行时间。该参数仅8.2.1及以上集群版本支持。
当存储过程中子语句执行完成时，其执行时间大于此参数设置值时，作业信息会转储到TopSQL归档表中。该参数只有当[enable_track_record_subsql]为on时生效。
**参数类型**：USERSET
**取值范围**：整型，0～INT_MAX，单位为秒。
- 值为0时，存储过程中所有子语句都进行历史信息归档。
- 值大于0时，存储过程中子语句记录的执行时间超过设置值就会进行历史信息归档。
**默认值：**180s
#### query_exception_count_limit
**参数说明：**设置作业触发异常规则次数的上限。作业触发异常规则次数达到上限后该作业会被自动加入黑名单且禁止再执行，只有移除黑名单后才能恢复运行。
**参数类型**：USERSET
**取值范围**：整型，-1～INT_MAX。
- 值为-1时，表示对作业触发异常规则的次数不做限制，即作业触发异常规则次数再多也不会自动将该作业加入黑名单。
- 值大于等于0时，表示作业触发异常规则次数达到阈值时该作业立即被加入黑名单。其中，0和1含义相同，表示只要作业触发异常规则即会将作业加入黑名单。
**默认值：**-1
#### disable_memory_protect
**参数说明：**禁止内存保护功能。当系统内存不足时如果需要查询系统视图，可以先将此参数置为on，禁止内存保护功能，保证视图可以正常查询。该参数只适用于在系统内存不足时进行系统诊断和调试，正常运行时请保持该参数配置为off。
**参数类型**：USERSET
**取值范围**：布尔型
- on表示禁止内存保护功能。
- off表示启动内存保护功能。
**默认值：**off
#### query_band
**参数说明：**用于标识当前会话的作业类型，由用户自定义。
**参数类型**：USERSET
**取值范围**：字符型
**默认值：**空
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/caution_3.0-zh-cn.png)
- 动态负载功能包含两层内存管控队列：全局内存管控和资源池管控。全局内存管控通过作业的查询估算内存进行判断作业是否可进行下发，资源池管控通过资源池参数决定作业是否下发。8.2.1集群版本之前，开启动态负载管理功能后默认打开全局内存管控功能，由于可能存在优化器行数估算不准而出现语句内存使用量低估或高估，导致作业在CCN进行全局内存管控队列排队的情况。因此DWS在8.2.1及以上集群版本用该参数控制全局内存管控队列是否开启，以提高作业运行效率和减少CCN异常排队的情况发生。
- 修改此参数时需注意以下情况：
  1. 当关闭此参数时，代表用户不需要CCN管控功能，此时CCN内存负反馈机制失效。
  
  2. 当作业正在运行时，若此时该GUC参数从关闭修改为开启，此时CCN内存负反馈机制生效，在高并发情况下，会出现暂时的内存不可用情况，待当前正在运行的作业运行完成后，动态负载功能会恢复。
  
  3. 当作业正在运行时，此时修改该GUC参数从开启到关闭状态，若作业大多是属于默认资源池的用户下发的，不建议直接修改，可能会出现内存报错问题。待无从属于默认资源池的用户下发的作业时，可以修改。建议用户绑定用户资源池后，再下发作业。
   
 
#### wlm_memory_feedback_adjust
**参数说明：**是否开启动态负载管理中的内存负反馈功能。（该参数仅8.2.0及以上集群版本支持）
语句在CN节点上会计算出估算内存，用该值来预占内存资源，语句内存过高估算场景时，语句预占内存资源过大，会引发后续作业排队，导致系统资源利用率下降，内存负反馈机制，会基于DN上的实际使用内存情况，判断如果集群连续一段时间处于高估场景时，会由CCN节点动态降低语句在CN预占的内存资源，将高估的内存腾让出来，给后续作业使用，从一定程度上缓解了语句严重高估导致系统资源利用率下降的问题。
**参数类型**：SIGHUP
**取值范围**：字符串
- on表示启用内存负反馈功能。
- off表示关闭内存负反馈功能。
- on()表示启用内存负反馈功能，并且指定触发负反馈需要的时间以及触发负反馈需要的估算内存百分比参数。例如：on(60,50)表示启用内存负反馈功能，触发负反馈机制生效需要连续60秒都是高估场景，还需要语句预占的估算内存总值要超过系统可用内存的50%。默认触发负反馈机制生效的时间长度为50秒，默认触发负反馈生效的最低估算内存总值要超过系统可用内存的40%。
**默认值：**on
#### bbox_dump_count
**参数说明：**在bbox_dump_path定义的路径下，允许存储的DWS所产生core文件最大数。超过此数量，旧的core文件会被删除。此参数只有当enable_bbox_dump为on时才生效。
**参数类型**：USERSET
**取值范围**：整型，1～20
**默认值：**8
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/note_3.0-zh-cn.png)
在并发产生core文件时，core文件的产生个数可能大于bbox_dump_count。
#### io_limits
**参数说明**：该参数8.1.2版本中已废弃，为兼容历史版本功能保留该参数，当前版本设置无效。
**参数类型**：USERSET
**取值范围**：整型，0～1073741823
**默认值：**0
#### io_priority
**参数说明**：该参数8.1.2版本中已废弃，为兼容历史版本功能保留该参数，当前版本设置无效。
**参数类型**：USERSET
**取值范围**：枚举型
- None
- Low
- Medium
- High
**默认值：**None
#### session_respool
**参数说明**：当前的session关联的resource pool。
**参数类型**：USERSET
即如果先设置cgroup_name，再设置session_respool，那么session_respool关联的控制组起作用，如果再切换cgroup_name，那么新切换的cgroup_name起作用。
切换cgroup_name的过程中如果指定到Workload控制组级别，数据库不对级别进行验证。级别的范围只要在1-10范围内都可以。
建议尽量不要混合使用cgroup_name和session_respool。
**取值范围**：字符串，通过create resource pool所设置的资源池。
**默认值：**invalid_pool
#### enable_transaction_parctl
**参数说明**：是否管控事务块语句和存储过程语句。
**参数类型**：USERSET
**取值范围**：布尔型
- on表示对事务块及存储过程语句进行管控。
- off表示对事务块及存储过程语句不进行管控。
**默认值：**on
 #### session_history_memory
**参数说明**：设置历史查询视图的内存大小。
**参数类型**：SIGHUP
**取值范围**：整型，10MB～max_process_memory的50%。
**默认值：**100MB
#### topsql_retention_time
**参数说明**：设置历史TopSQL中gs_wlm_session_info和gs_wlm_operator_info表中数据的保存时间。
**参数类型**：SIGHUP
**取值范围**：整型，0\~3650，单位为天。
- 值为0时，表示数据永久保存。
- 值大于0时，表示数据能够保存的对应天数。
默认值：30
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/caution_3.0-zh-cn.png)
- 设置此GUC参数启用数据保存功能前，请先清理gs_wlm_session_info和gs_wlm_operator_info表中的数据。
- 新建集群默认值为30，升级场景该参数的默认值为保持前向兼容维持原值。
 
#### transaction_pending_time
**参数说明**：当enable_transaction_parctl为on时，事务块语句和存储过程语句排队的最大时间。
**参数类型**：USERSET
**取值范围**：整型，-1～INT_MAX，单位为秒。
- 值为-1或0：事务块语句和存储过程语句无超时判断，排队至资源满足可执行条件。
- 值大于0：事务块语句和存储过程语句排队超过所设数值的时间后，无视当前资源情况强制执行。
**默认值：**0
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/notice_3.0-zh-cn.png)
此参数仅对存储过程及事务块的内部语句有效，即[PG_SESSION_WLMSTAT](https://support.huaweicloud.com/devg-dws/dws_04_0749.html)中enqueue字段显示为Transaction或StoredProc的语句才会生效。
#### enable_concurrency_scaling
**参数说明：**设置是否打开弹性并发扩展功能。该参数仅9.1.0.100及以上集群版本支持。
**参数类型：**SIGHUP
**取值范围：**布尔型
- on表示开启弹性并发扩展功能。
- off表示关闭弹性并发扩展功能。
**默认值：**off
#### concurrency_scaling_max_idle_time
**参数说明：**用于指定并发扩展创建的弹性逻辑集群的最大空闲时间，如果超过该参数的设置值则进入弹性逻辑集群销毁流程。该参数仅9.1.0.100及以上集群版本支持。
**参数类型：**SIGHUP
**取值范围：**整型，0\~60，单位为分钟。其中，0表示该并发扩展创建的弹性逻辑集群不会被销毁，请谨慎设置。
**默认值：**5
#### concurrency_scaling_limit_per_main_vw
**参数说明：**用于限制每个经典逻辑集群所能创建的最大并发扩展弹性逻辑集群的数量。该参数仅9.1.0.100及以上集群版本支持。
**参数类型：**SIGHUP
**取值范围：**整型，0\~32
**默认值：**5
#### concurrency_scaling_max_vw_active_statements
**参数说明：**用于指定并发扩展弹性逻辑集群上所能执行的最大并发数。该参数仅9.1.0.100及以上集群版本支持。
**参数类型：**SIGHUP
**取值范围：**整型，-1\~INT_MAX。
- 0，表示该并发扩展弹性逻辑集群不执行任何作业，请谨慎设置。
- -1，表示该并发扩展弹性逻辑集群不受并发管控，请谨慎设置。该取值仅9.1.0.200及以上集群版本支持。
**默认值：**60
#### concurrency_scaling_max_waiting_statements
**参数说明：**用于指定全局排队队列中，触发并发扩展弹性逻辑集群创建流程的弹性作业排队数量。该参数仅9.1.0.100及以上集群版本支持。
如果大于等于该参数的设置值且当前已创建的并发扩展逻辑集群未超过concurrency_scaling_limit_per_main_vw设置值，则自动进入创建并发扩展弹性逻辑集群流程。
**参数类型：**SIGHUP
**取值范围：**整型，0\~INT_MAX。其中0表示未排队也会创建弹性逻辑集群。设置为0时会消耗大量资源，请谨慎设置。
**默认值：**10
