shared_memory_size_in_huge_pages
是一个预设配置参数,根据指定的 huge_page_size
,报告主共享内存区域所需的 巨页
数量。
shared_memory_size_in_huge_pages
在 PostgreSQL 15 中添加。
用法
在 Linux 系统上,如果本地系统上有 巨页
可用,则 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 17)
设置 | -1 |
单位 | |
类别 | 预设选项 |
简短描述 | 显示主共享内存区域所需的巨页数。 |
额外描述 | -1 表示无法确定该值。 |
上下文 | 内部 |
变量类型 | 整数 |
来源 | 默认值 |
最小值 | -1 |
最大值 | 2147483647 |
枚举值 | |
启动值 | -1 |
重置值 | -1 |
源文件 | |
源代码行 | |
待重启 | 否 |
shared_memory_size_in_huge_pages (PostgreSQL 16)
设置 | -1 |
单位 | |
类别 | 预设选项 |
简短描述 | 显示主共享内存区域所需的巨页数。 |
额外描述 | -1 表示无法确定该值。 |
上下文 | 内部 |
变量类型 | 整数 |
来源 | 默认值 |
最小值 | -1 |
最大值 | 2147483647 |
枚举值 | |
启动值 | -1 |
重置值 | -1 |
源文件 | |
源代码行 | |
待重启 | 否 |
shared_memory_size_in_huge_pages (PostgreSQL 15)
设置 | -1 |
单位 | |
类别 | 预设选项 |
简短描述 | 显示主共享内存区域所需的巨页数。 |
额外描述 | -1 表示无法确定该值。 |
上下文 | 内部 |
变量类型 | 整数 |
来源 | 默认值 |
最小值 | -1 |
最大值 | 2147483647 |
枚举值 | |
启动值 | -1 |
重置值 | -1 |
源文件 | |
源代码行 | |
待重启 | 否 |
更改历史记录
- 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 巨页