#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级别的内存环境,则可选择更大的大页。
示例
-
查看系统默认大页大小:
cat /proc/meminfo | grep Hugepagesize -
查看系统支持大页大小:
ls /sys/kernel/mm/hugepages -
设置大页数量:
设置大页数量前,用户需要知道当前配置下数据库的共享内存共需多少个页面。以使用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查看系统当前大页的使用情况.
-
给与数据库进程用户使用大页内存权限:
查看数据库进程用户所属用户组id,给与用户使用大页内存权限。
id openGauss sysctl -w vm.hugetlb_shm_group=xxxx -
设置配置文件postgresql.conf,将enable_huge_pages设置为on,开启大页功能。
-
重启数据库。
#openGauss #入门 #安装 #数据库 #开源