想找openGauss的参考信息,看这个就够了(828)

64 阅读3分钟

#openGauss #入门 #安装 #数据库 #开源

知识来源:docs-opengauss.osinfra.cn/zh/

huge_page_size

参数说明: 大页内存使用的页面大小。该选项仅在enable_huge_pages设置为on时生效。

该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。在主备场景中,该参数不会被同步到其他节点。

取值范围: 整型,0 ~ 1073741823,单位为8kB。也可按照xxkB、xxMB、xxGB的方式设置。

默认值: 0,代表使用操作系统默认的大页大小。操作系统默认值可以通过/proc/meminfo中的Hugepagesize项查看。

须知:

  • 此参数的值必须是当前环境操作系统下可选的大页大小。具体的大页可选值可以通过/sys/kernel/mm/hugepages/目录查看。若enable_huge_pages设置为on时,填入的大页大小在当前环境下不支持,数据库将无法启动。
  • 不同操作系统提供不同大小的大页,具体选择需参考运行环境总内存大小,以及当前环境下内存负载情况。一般而言,对于数百GB级别的内存环境,可以选择2MB的大页。对于TB级别的内存环境,则可选择更大的大页。

示例

  1. 查看系统默认大页大小:

    cat /proc/meminfo | grep Hugepagesize
    
  2. 查看系统支持大页大小:

    ls /sys/kernel/mm/hugepages
    
  3. 设置大页数量:

    设置大页数量前,用户需要知道当前配置下数据库的共享内存共需多少个页面。以使用2MB大页为例。当配置文件中enable_huge_pages设置为on时,数据库启动将打印如下日志:

    LOG:  Allocate shared memory as huge pages. Huge page size: 2048 kB, required pages count: 1670
    

    此日志提示用户在当前配置下,数据库的共享内存将需要1670个2MB大页。此时,更改/sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages文件的值。

    注意:

    设置大页时操作系统需寻找指定数量的空载内存。以本示例为例,操作系统将寻找1670个大小为2M的空载内存进行大页内存的分配。若无法找到指定数量的空载内存,操作系统将设置当前可分配的最大数量。因此,设置大页内存后请检查文件,确保大页数量充足以保证数据库正常启动。

    echo 1670 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
    cat /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
    

    启动数据库后,可以通过/proc/meminfo查看系统当前大页的使用情况.

  4. 给与数据库进程用户使用大页内存权限:

    查看数据库进程用户所属用户组id,给与用户使用大页内存权限。

    id openGauss
    sysctl -w vm.hugetlb_shm_group=xxxx
    
  5. 设置配置文件postgresql.conf,将enable_huge_pages设置为on,开启大页功能。

  6. 重启数据库。

#openGauss #入门 #安装 #数据库 #开源

知识来源:docs-opengauss.osinfra.cn/zh/