shared_memory_size_in_huge_pages
一个预设配置参数,用于报告所需的大页(huge pages)数量
shared_memory_size_in_huge_pages 是一个预设配置参数,用于报告主共享内存区域所需的大页(huge pages)数量,该数量基于指定的 huge_page_size。
shared_memory_size_in_huge_pages 在 PostgreSQL 15 中添加。
用法
在 Linux 系统上,如果本地系统提供了大页(huge pages),shared_memory_size_in_huge_pages 将在运行时计算。此值可用于确定内核参数 vm.nr_hugepages 的适当值。
请注意,shared_memory_size_in_huge_pages 报告的值仅考虑 PostgreSQL 的内存使用情况;如果系统上的其他应用程序也需要大页,可能需要更大的值。
如果大页不可用,或者在 Linux 以外的系统上,报告的值始终是 -1。
按 PostgreSQL 版本详细信息
shared_memory_size_in_huge_pages (PostgreSQL 19)
| 设置 | -1 |
| 单位 | |
| 类别 | 预设选项 |
| 简短描述 | 显示主共享内存区域所需的大页数量。 |
| 扩展描述 | -1 表示不支持大页。 |
| 上下文 | 内部 |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | -1 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | -1 |
| 重置值 | -1 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
shared_memory_size_in_huge_pages (PostgreSQL 18)
| 设置 | -1 |
| 单位 | |
| 类别 | 预设选项 |
| 简短描述 | 显示主共享内存区域所需的大页数量。 |
| 扩展描述 | -1 表示不支持大页。 |
| 上下文 | 内部 |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | -1 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | -1 |
| 重置值 | -1 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
shared_memory_size_in_huge_pages (PostgreSQL 17)
| 设置 | -1 |
| 单位 | |
| 类别 | 预设选项 |
| 简短描述 | 显示主共享内存区域所需的大页数量。 |
| 扩展描述 | -1 表示无法确定该值。 |
| 上下文 | 内部 |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | -1 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | -1 |
| 重置值 | -1 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
shared_memory_size_in_huge_pages (PostgreSQL 16)
| 设置 | -1 |
| 单位 | |
| 类别 | 预设选项 |
| 简短描述 | 显示主共享内存区域所需的大页数量。 |
| 扩展描述 | -1 表示无法确定该值。 |
| 上下文 | 内部 |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | -1 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | -1 |
| 重置值 | -1 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
shared_memory_size_in_huge_pages (PostgreSQL 15)
| 设置 | -1 |
| 单位 | |
| 类别 | 预设选项 |
| 简短描述 | 显示主共享内存区域所需的大页数量。 |
| 扩展描述 | -1 表示无法确定该值。 |
| 上下文 | 内部 |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | -1 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | -1 |
| 重置值 | -1 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
变更历史
- PostgreSQL 15
- 添加(提交 43c1c4f6)
示例
在一个 shared_memory_size 报告以下值的系统上
postgres=# SHOW shared_memory_size; shared_memory_size -------------------- 1081MB (1 row)
shared_memory_size_in_huge_pages 是
postgres=# SHOW shared_memory_size_in_huge_pages; shared_memory_size_in_huge_pages ---------------------------------- 541 (1 row)
此值是通过将 shared_memory_size 的报告值除以当前大页大小(如果未通过 huge_page_size 显式设置,则可以从 /proc/meminfo 中检索)
$ grep ^Hugepagesize /proc/meminfo Hugepagesize: 2048 kB
并向上取整得出的,例如:
postgres=# SELECT (1081*1024)/2048;
?column?
----------
540
(1 row)
参考资料
- PostgreSQL 文档: shared_memory_size_in_huge_pages
- PostgreSQL 文档: Linux Huge Pages
