タイプ: | enum |
デフォルト: | try |
コンテキスト: | postmaster |
再起動: | true |
値: | [off, on, try] |
以来: | 9.4 |
主共有メモリ領域に対してhuge pageを要求するかどうかを管理します。可能な値はtry
(デフォルト)、on
、off
です。huge_pages
をtry
に設定すると、サーバはhuge pageの要求を試み、失敗したらデフォルトに戻します。on
にすると、要求に失敗した場合にサーバの起動ができなくなることになります。off
ならhuge pageの要求は行いません。
今のところこの機能はLinuxとWindowsでのみサポートされています。 他のシステムではtry
と設定しても無視されます。
huge pageを使うと、ページテーブルが小さくなり、メモリ管理に使用されるCPU時間が少なくなり、性能が向上します。詳細は、linux-huge-pagesを見てください。
huge pageはWindowsではlarge pageとして知られています。それを使用するには、PostgreSQLを実行するWindowsユーザアカウントにメモリ中のロックページ権限を与える必要があります。ユーザにメモリ中のロックページ権限を与えるには、Windowsのグループポリシーツール(gedit.msc)を利用できます。Windowsサービスとしてではなく、スタンドアロンプロセスとしてデータベースサーバをコマンドプロンプトで起動するには、コマンドプロンプトを管理者として実行するか、ユーザアクセス管理(UAC)を無効にしておかなければなりません。UACが有効だと、通常のコマンドプロンプトは起動時にユーザのメモリ中のロックページ権限を剥奪します。
この設定は主共有メモリ領域にのみ影響することに注意してください。Linux、FreeBSD、Illumosのようなオペレーティングシステムでは、PostgreSQLからの明示的な要求なしにhuge page(super pageあるいはlargepageとしての知られています)が通常のメモリ獲得の際に使用できます。Linuxでは、これはtransparent huge pagestransparent huge pages (THP)と呼ばれています。この機能は、あるLinuxバージョンのあるユーザにおいてPostgreSQLの性能低下をもたらすことが知られています。ですから、この機能の利用は(huge_pages
の明示的な利用と違って)今の所推奨されていません。