• 検索結果がありません。

Linux オペレーティング・システム設計

ドキュメント内 PostgreSQL Internals(1) (ページ 184-189)

PostgreSQLを稼働させるために Linux 環境で変更が推奨される項目について記述して

います。

12.1 カーネル設定

12.1.1 メモリー・オーバーコミット

Red Hat Enterprise Linuxは標準でメモリー・オーバーコミットの機能が動作していま

す。メモリーが不足する状況になった場合にメモリー使用量が多い PostgreSQL インスタ ンスが強制終了されることを防ぐため、メモリー・オーバーコミットの機能は停止すべき と考えます。

表 80 オーバーコミット設定

カーネル・パラメータ デフォルト値 推奨値 備考

vm.overcommit_memory 0 2

vm.overcommit_ratio 50 99

12.1.2 I/O スケジューラ

一般的なシステムではI/Oスケジューラの変更は必要ないと思われます。一括読み込みが 多いシステムではdeadlineに変更することも検討します。

例 132 I/O スケジューラをdeadlineに変更(/etc/grub.confファイル)

12.1.3 SWAP

できるだけスワップアウトせずにメモリー内にプロセスを維持するため、カーネル・パ

ラメータvm.swappinessは5以下にすることが推奨されます。

表 81 スワップ設定

パラメータ デフォルト値 推奨値 備考

vm.swappiness 60 0

kernel /vmlinuz-2.6.18-274.3.1.el5 ro root=/dev/vg00/lvol1 elevetor=deadline

12.1.4 Huge Page

大規模メモリー環境ではHuge Pageを利用する設定を行います。PostgreSQL 9.4のデフ ォ ル ト 設 定 で は Huge Page が 利 用 で き れ ば 利 用 し ま す 。 カ ー ネ ル ・ パ ラ メ ー タ

vm.nr_hugepagesには共有メモリーで使用される領域以上のサイズ(2 MB単位)を指定

します。必要量量が不足する場合はインスタンス起動エラーになります。

表 82 Huge Pages

パラメータ デフォルト値 推奨値 備考

vm.nr_hugepages 0 shared_buffers以上

12.1.5 省電力モード

パ フ ォ ー マ ン ス 上 の 理 由 か ら 省 電 力 モ ー ド は 使 用 し な い こ と が 推 奨 さ れ ま す 。

/etc/grub.confファイルに以下のエントリを指定します。あわせてBIOS設定が必要な場合

があります。

表 83 省電力モード

パラメータ 推奨値 備考 intel_idle.max_cstate 0

processor.max_cstate 0

12.2 ファイルシステム設定

PostgreSQLはストレージとしてファイルシステムを使用し、多数の小規模ファイルを自

動的に作成します。このためファイルシステムのパフォーマンスがシステムの性能に大き く影響します。Linux環境ではext4またはXFSが推奨されます。

12.2.1 ext4 使用時

データベース・クラスタ用ファイルシステムのマウント・オプションとして noatime、

nodiratimeを指定します。

12.2.2 XFS 使用時

データベース・クラスタ用ファイルシステムのマウント・オプションとしてnobarrier、

noatime、noexec、nodiratimeを指定します。

12.3 Core ファイル

トラブルの解析には障害発生時に生成された core ファイルが役に立ちます。ここでは Red Hat Enterprise Linuxのトラブル解析ツールを使ってPostgreSQLがcoreファイルを 生成する設定について記述しています。

12.3.1 CORE ファイル出力設定

標準ではcoreファイルのサイズ制限が0になっているため、制限を解除します。

□ limits.confファイルの編集

/etc/security/limits.confファイルに以下のエントリーを追加します。

□ .bashrcファイルの編集

postgresユーザーの{HOME}/.bashrcファイルに以下のエントリーを追加します。

12.3.2 ABRT による Core 管理

Red Hat Enterprise Linux 6にはバグ・レポートに必要な情報を自動的に収集するAuto

Bug Reporting Tool (ABRT) が搭載されました。ABRTは標準的なインストールで自動的

に動作しています。

□ カーネル・パラメータの設定

ABRTがインストールされた環境では、カーネル・パラメータkernel.core_patternが 以下の設定に変更されています。

このためCoreファイルが生成されるとABRTにファイル内容が渡されます。

□ ディレクトリの作成と出力先の設定

Coreファイルは標準では /var/spool/abrtディレクトリに出力されます。ディレクト リを変更するには /etc/abrt/abrt.conf ファイルのDumpLocation パラメータを変更し

postgres - core unlimited

ulimit -c unlimited

|/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e

ます。

例 133 ディレクトリの作成とABRT設定

□ ABRTパッケージ設定

標準では署名されていないプログラムのCoreファイルは生成されません。この制限 を 解 除 す る た め に は/etc/abrt/abrt-action-save-package-data.conf フ ァ イ ル の

OpenGPGCheckパラメータをnoに設定します。

例 134 署名されていないプログラムのCoreを出力する

□ その他の設定

/etc/abrt/plugins/CCpp.confファイルにはCore ファイルの生成ルールやフォーマット

を指定します。

例 135 Coreファイル設定

ABRT の 詳 細 は 以 下 の URL を 参 照 し て く だ さ い 。 https://access.redhat.com/site/documentation/ja-JP/Red_Hat_Enterprise_Linux/6/html/

Deployment_Guide/sect-abrt-configuration.html

# mkdir –p /var/crash/abrt

# chown abrt:abrt /var/crash/abrt

# chmod 755 /var/crash/abrt

# cat /etc/abrt/abrt.conf

DumpLocation = /var/spool/abrt ← 出力ディレクトリ

MaxCrashReportsSize = 0 ← ファイル・サイズの制限なし

# cat /etc/abrt/abrt-action-save-package-data.conf OpenGPGCheck = no

# cat /etc/abrt/plugins/CCpp.conf MakeCompatCore = no

SaveBinaryImage = yes

12.4 その他

12.4.1 SSH

レプリケーション環境では、アーカイブログのギャップを解消するために recovery.conf ファイルのrestore_commandパラメータが使用されます。ここにはアーカイブログ・ファ イルのコピー用コマンドを記述します。プライマリ・ホストにscpコマンドでパスワードな しで接続できるように設定を行います。

12.4.2 Firewall

ファイア・ウォールを使用する場合はローカルTCPポート5,432(パラメータport)に 対する接続を許可します。

12.4.3 SE-Linux

現状では SE-Linux とPostgreSQL の組み合わせについて明確な指針が無いように見え

ます。PermissiveモードまたはDisabledモードに設定することが一般的です。

付録 . 参考文献

ドキュメント内 PostgreSQL Internals(1) (ページ 184-189)