huge_page_size 是一个配置文件参数,用于确定使用何种大小的 Linux 大页,前提是已通过 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 19)
| 设置 | 0 |
| 单位 | kB |
| 类别 | 资源使用 / 内存 |
| 简短描述 | 应请求的大页大小。 |
| 扩展描述 | 0 表示使用系统默认值。 |
| 上下文 | postmaster |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 0 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 0 |
| 重置值 | 0 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档: huge_page_size
huge_page_size (PostgreSQL 18)
| 设置 | 0 |
| 单位 | kB |
| 类别 | 资源使用 / 内存 |
| 简短描述 | 应请求的大页大小。 |
| 扩展描述 | 0 表示使用系统默认值。 |
| 上下文 | postmaster |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 0 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 0 |
| 重置值 | 0 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档: huge_page_size
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
