huge_page_size
是一个 配置参数,它确定要使用的大页面的大小,如果这些页面通过 huge_pages
GUC 启用。
huge_page_size
在 PostgreSQL 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
更改历史记录
- PostgreSQL 14
- 添加 (提交 d2bddc25)
示例
如果 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.
参考
- PostgreSQL 文档: huge_page_size