タイプ: enum
デフォルト: try
コンテキスト: postmaster
再起動: true
値: [off, on, try]
以来: 9.4

主共有メモリ領域に対してhuge pageを要求するかどうかを管理します。可能な値はtry (デフォルト)、onoffです。huge_pagestryに設定すると、サーバは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の明示的な利用と違って)今の所推奨されていません。

推奨事項 [EN]

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

件のコメント