huge_pages
英文手册覆盖始于 PostgreSQL 7.4. 来源历史与运行验证各自保留独立版本边界。
当前阅读 PG 18·选择有来源记录的版本
- boot val
- try
- category
- Resource Usage / Memory
- context
- postmaster
- documented
- true
- enumvals
- off, on, try
- extra desc
- 未知
- lang
- en
- max val
- 未知
- metadata version
- 18
- min val
- 未知
- name
- huge_pages
- short desc
- Use of huge pages on Linux or Windows.
- source
- pg-settings-source-snapshot
- unit
- 未知
- vartype
- enum
版本定义 PG 18
控制是否为主共享内存区域请求巨型页。有效值是try(默认)、on以及off。该参数只能在服务器启动时设置。如果huge_pages被设置为try,则服务器将尝试请求巨型页,但是如果失败会退回到默认的方式。如果为on,请求巨型页失败将使得服务器无法启动。如果为off,则不会请求巨型页。实际是否使用巨型页由服务器变量huge_pages_status表示。
当前,只有Linux和Windows上支持这个设置。在其他系统上这个参数被设置为try时,它会被忽略。在Linux中,它只在shared_memory_type设置为mmap(默认)的时候被支持。
巨型页的使用会导致更小的页表以及花费在内存管理上的 CPU 时间更少,从而提高性能。更多有关Linux上使用巨型页的细节请见第 18.4.5 节。
巨型页在Windows上被称为大页面。要使用大页面,需要为运行PostgreSQL的Windows用户账号分配“在内存中锁定页面”的用户权限。可以使用Windows的组策略工具(gpedit.msc)来分配用户权限“在内存中锁定页面”。为了在命令窗口以独立进程(而不是Windows服务)的方式启动数据库服务器,命令窗口必须以管理员身份运行或者禁用用户访问控制(UAC)。当UAC被启用时,普通的命令窗口会在启动时收回用户权限“在内存中锁定页面”。
注意这种设置仅影响主共享内存区域。Linux、FreeBSD以及Illumos之类的操作系统也能为普通内存分配自动使用巨型页(也被称为“超级”页或者“大”页面),而不需要来自PostgreSQL的显式请求。在Linux上,这被称为“transparent huge pages”(THP,透明巨型页)。已知这种特性对某些Linux版本上的某些用户会导致PostgreSQL的性能退化,因此当前并不鼓励使用它(与huge_pages的显式使用不同)。
比较版本
来源引用
定义来源
center · PostgreSQL 18 · english-manuals:741dc2299965d10a4a4cbccea6beab0b6915b92b393164ae0aa10dadb8cb1d7b
正文语言: zh-Hans · 2026-09-11@29c86d9