huge_page_size

控制大页大小的系统参数

huge_page_size 是一个 配置参数,它确定要使用的大页面的大小,如果这些页面通过 huge_pages GUC 启用。

huge_page_sizePostgreSQL 14 中添加。

默认值

huge_page_size 的默认值为:0

如果 huge_page_size 设置为默认值 0,则将使用系统上的默认大页面大小。

用法

本地系统的有效值可以从目录 /sys/kernel/mm/hugepages/ 中检索,例如:

$ ls /sys/kernel/mm/hugepages/
hugepages-1048576kB  hugepages-2048kB

如果 huge_pages 设置为 on,并且提供了除 0 之外的值,则它必须与系统上可用的其中一个大页面大小匹配,否则 PostgreSQL 将无法启动或重新启动。

请注意,从 PostgreSQL 15 开始,目前仅在 Linux 上支持非默认设置。

按 PostgreSQL 版本详细说明

huge_page_size (PostgreSQL 17)

设置 0
单位 kB
类别 资源使用/内存
简短描述 应请求的大页面的大小。
额外描述  
上下文 postmaster
变量类型 整数
来源 默认
最小值 0
最大值 2147483647
枚举值  
启动值 0
重置值 0
源文件  
源代码行  
待处理重启 false

文档: huge_page_size

huge_page_size (PostgreSQL 16)

设置 0
单位 kB
类别 资源使用/内存
简短描述 应请求的大页面的大小。
额外描述  
上下文 postmaster
变量类型 整数
来源 默认
最小值 0
最大值 2147483647
枚举值  
启动值 0
重置值 0
源文件  
源代码行  
待处理重启 false

文档: huge_page_size

huge_page_size (PostgreSQL 15)

设置 0
单位 kB
类别 资源使用/内存
简短描述 应请求的大页面的大小。
额外描述  
上下文 postmaster
变量类型 整数
来源 默认
最小值 0
最大值 2147483647
枚举值  
启动值 0
重置值 0
源文件  
源代码行  
待处理重启 false

文档: huge_page_size

huge_page_size (PostgreSQL 14)

设置 0
单位 kB
类别 资源使用/内存
简短描述 应请求的大页面的大小。
额外描述  
上下文 postmaster
变量类型 整数
来源 默认
最小值 0
最大值 2147483647
枚举值  
启动值 0
重置值 0
源文件  
源代码行  
待处理重启 false

文档: huge_page_size

更改历史记录

示例

如果 huge_page_size 设置为系统不支持的值,例如:

$ postgres -D /var/lib/pgsql/data/ -C huge_page_size
999

PostgreSQL 将中止启动并显示类似以下错误:

$ pg_ctl  -D /var/lib/pgsql/data/ start
waiting for server to start....[2023-03-07 16:23:03 UTC]    FATAL:  XX000: could not map anonymous shared memory: Invalid argument
[2023-03-07 16:23:03 UTC]    LOCATION:  CreateAnonymousSegment, pg_shmem.c:654
[2023-03-07 16:23:03 UTC]    LOG:  00000: database system is shut down
[2023-03-07 16:23:03 UTC]    LOCATION:  UnlinkLockFiles, miscinit.c:1138
 stopped waiting
pg_ctl: could not start server
Examine the log output.

分类

GUC 配置项内存

另请参阅

huge_pageshuge_pages_statusshared_memory_size_in_huge_pages

反馈

提交任何关于 "huge_page_size" 的评论、建议或更正 此处