数据仓库服务 GAUSSDB(DWS)-内存:max_process_memory

时间:2024-04-30 17:23:33

max_process_memory

参数说明:设置一个数据库节点可用的最大物理内存。

参数类型:SIGHUP

取值范围:整型,2*1024*1024~INT_MAX/2,单位为KB。

默认值:非从备DN节点自动适配,一个机器部署多个DN情况下,公式为(物理内存大小)* 0.8 / (1+主DN个数);一个机器部署单个DN情况下,公式为(物理内存大小)* 0.6;当结果不足2GB时,默认取2GB。从备DN默认为12GB。

设置建议:

  • DN上该数值需要根据系统物理内存及单节点部署主DN个数决定的。一个机器部署多个DN情况下,max_process_memory计算公式如下:(物理内存大小 – vm.min_free_kbytes)* 0.8 / (n+主DN个数);一个机器部署单个DN情况下,max_process_memory计算公式如下:(物理内存大小 – vm.min_free_kbytes)* 0.6。该参数目的是尽可能保证系统的可靠性,不会因数据库内存膨胀导致节点OOM。这个公式中提到vm.min_free_kbytes,其含义是预留操作系统内存供内核使用,通常用作操作系统内核中通信收发内存分配,至少为5%内存。即, max_process_memory=物理内存*0.8/(n+主DN个数),其中,当集群规模小于256时, n=1;当集群规模大于256且小于512时, n=2;当集群规模超过512时,n=3。
  • 不推荐设置为最小阈值。
  • CN上该数值内存可设置与DN数值一样。
  • RAM:集群规划时分配给集群的最大使用内存。
  • GaussDB(DWS)从8.2.0版本开始,为了提升内存资源利用率,增大了单机器单DN部署形态的max_process_memory初始值,但当出现集群状态不均衡的情况下,两个主DN节点会同时在一个机器上,如果仍然使用max_process_memory初始值,机器可能出现OOM报错的情况。为此,8.2.0版本开始,max_process_memory参数更改为SIGHUP类型,可以通过手动设置的方式来动态调整;同时,新增max_process_memory_auto_adjust参数,当出现集群状态不均衡的情况下,CM会根据集群状态来动态调整max_process_memory,调整max_process_memory的计算公式为:(物理内存大小 – vm.min_free_kbytes)* 0.8 / 主DN个数。
  • GaussDB(DWS)从8.2.1版本开始,扩大了max_process_memory动态内存调整的适用范围,由原先仅支持一个机器部署单个DN的集群形态,变更为支持所有部署形态。
    • max_process_memory_auto_adjust为on时,max_process_memory将会在上限和下限两值之间动态调整;其中,max_process_memory下限值的计算公示为:(物理内存大小)* 0.8 / (1+主DN个数);max_process_memory上限值由GUC参数max_process_memory_balanced设置(max_process_memory_balanced参数设置请联系技术支持工程师)。
    • 集群在均衡模式下,max_process_memory将使用上限值,提高节点整体的内存资源利用率,相对之前版本,内存利用率会提升。
    • 集群在非均衡模式下,max_process_memory将使用下限值,节点整体的内存资源利用率和8.2.1集群之前的版本一致。
    • 升级场景下,该参数为保持前向兼容,系统不会设置max_process_memory_balanced,max_process_memory默认使用升级前设置的值。
support.huaweicloud.com/devg-830-dws/dws_04_0893.html