类型: enum
默认: try
上下文: postmaster
重新开始: true
值: [off, on, try]
以来: 9.4

控制是否为主共享内存区域请求巨型页。有效值是try(默认)、on以及off。如果huge_pages被设置为try,则服务器将尝试请求巨型页,但是如果失败会退回到默认的方式。如果为on,请求巨型页失败将使得服务器无法启动。如果为off,则不会请求巨型页。

当前,只有Linux和Windows上支持这个设置。在其他系统上这个参数被设置为try时,它会被忽略。

巨型页面的使用会导致更小的页面表以及花费在内存管理上的 CPU 时间更少,从而提高性能。更多有关Linux上使用巨型页面的细节请见linux-huge-pages

巨型页在Windows上被称为大页面。要使用大页面,需要为运行PostgreSQL的Windows用户账号分配Lock Pages in Memory的用户权限。可以使用Windows的组策略工具(gpedit.msc)来分配用户权限Lock Pages in Memory。为了在命令窗口以单进程(而不是Windows服务)的方式启动数据库服务器,命令窗口必须以管理员身份运行或者禁用用户访问控制(UAC)。当UAC被启用时,普通的命令窗口会在启动时收回用户权限Lock Pages in Memory。

注意这种设置仅影响主共享内存区域。Linux、FreeBSD以及Illumos之类的操作系统也能为普通内存分配自动使用巨型页(也被称为超级页或者页面),而不需要来自PostgreSQL的显式请求。在Linux上,这被称为transparent huge pagestransparent huge pages(THP,透明巨型页)。已知这种特性对某些Linux版本上的某些用户会导致PostgreSQL的性能退化,因此当前并不鼓励使用它(与huge_pages的显式使用不同)。

建议 [EN]

However, for small systems (< 2GB of RAM) may be beneficial to set to “off”.

条评论