首页 > 数据库 > > 计算资源管理-内存资源管理
内存是GaussDB 200运行的一个关键资源,如果能够有效利用,可以提升业务查询性能。系统支持对内存资源的管理类型如表1所示。
内存管理方式 | 说明 |
|---|---|
实例级别的内存管理 | 通过设置系统级别的GUC参数“max_process_memory”,可以对数据库实例的最大可用物理内存进行管理。当作业申请的内存超过了给定限制时,会因为内存申请失败触发异常处理。 说明: 根据实例在执行业务时的不同分工,需要的内存大小也不同。以DN为例,可以参见max_process_memory给出的公式进行计算。 |
资源池级别的内存管理 | 通过设置资源池的参数“MEM_PERCENT”,可以对资源池的内存进行管理。 |
作业级别的内存管理 | 通过设置session级别的GUC参数“query_mem”,可以对作业可用内存进行管理。 |
逻辑内存管理功能已开启,即enable_memory_limit已设置为“on”;已熟悉gs_guc和ALTER RESOURCE POOL的使用。
实例级别的内存管理
数据库管理员可以通过下列步骤实现数据库实例级的内存管理。
SHOW enable_memory_limit;如果结果为on,则使用\q命令断开数据库执行4;否则断开数据库连接执行3。
gs_guc set -Z coordinator -Z datanode -N all -I all -c "enable_memory_limit=on"参数描述如下:
gs_guc set -Z datanode -N all -I all -c "max_process_memory=32GB"设置数据库CN实例的最大可用内存。根据经验,推荐将CN的最大可用内存设置为与DN一致,coordinator表示执行该配置的实例类型为CN实例。
gs_guc set -Z coordinator -N all -I all -c "max_process_memory=32GB"注意:
如果设置的max_process_memory值太小,可能导致逻辑内存管理模块失效。可以在连接数据库后,通过2检查逻辑内存管理模块是否开启,如果enable_memory_limit被关闭,请执行3~5重新设置max_process_memory,然后执行2再次检查逻辑内存管理模块是否开启。
说明:重启集群操作会导致用户执行操作中断,请在操作之前规划好合适的执行窗口。
gs_om -t stop && gs_om -t start资源池级别的内存管理
ALTER RESOURCE POOL resource_pool_a1 WITH (MEM_PERCENT=20);
ALTER RESOURCE POOL
说明:ACTIVE_STATEMENTS取值范围为 -1 ~ INT_MAX, 默认值为10,建议使用该默认值。当设置为0或者-1时,内存不受限制。
作业级别的内存管理
数据库管理员可以通过下列步骤实现作业级别的内存管理。
set query_mem='500MB';当结果显示为如下信息,则表示设置成功。
SET执行作业。
注意:如果query_mem超过资源池可用内存的上限或者低于256MB时,query_mem将不起作用,作业依然使用work_mem。
show max_process_memory;max_process_memory
--------------------
32GB
(1 row)
select * from pg_resource_pool;respool_name | mem_percent | cpu_affinity | control_group | active_statements | max_dop | memory_limit | parentid | io_limits | io_priority
------------------+-------------+--------------+---------------------+-------------------+---------+--------------+----------+-----------+-------------
default_pool | 100 | -1 | DefaultClass:Medium | -1 | 1 | 8GB | | 0 | None
resource_pool_a1 | 20 | -1 | class_a:workload_a1 | 10 | 1 | 8GB | 0 | | None
(2 rows)
show query_mem;query_mem
-----------
500MB
(1 row)
内存资源的使用情况请参考内存资源监控。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3132668/ ,如需转载,请注明出处,否则将追究法律责任。