PostgreSQLスキルアップノート(自己啓発のための個人サイト)
PostgreSQL用カーネル関連の設定(Linux)「Linuxのメモリオーバーコミット」
【一覧に戻る】
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■■■■ PostgreSQL スキルアップノート
■■■■
■◆■■ PostgreSQL用カーネル関連の設定(Linux)「Linuxのメモリオーバーコミット」
■■■■
■■■■
■■■■ 2013/01/20
■■■■ 使用環境: (CentOS6.2)
(C) 2013 ohdb
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【マニュアル】
カーネル関連の設定→●[マニュアル]
マニュアルに記載されているカーネルリソース関連と本書対象
・共有メモリ/セマフォ
・リソースの制限
・ Linuxのメモリオーバーコミット ★←本ページ対象
■1■ メモリオーバーコミットの抑止
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
「17.4. カーネルリソース」の管理の「17.4.3. Linuxのメモリオーバーコミット」
の部分に記載されている内容の要約
いわゆる「OOM−Killer」によってメモリ枯渇時に大事なプロセスを殺される
問題への対処で、メモリを"オーバーコミット"させないようにカーネルの動作を変更する。
OOM-killerが動作しなくなるわけではないため完全な対策ではない。
以下のカーネルパラメータを設定追加する。
【□】 vi /etc/sysctl.conf
vm.overcommit_memory = 2
【参考】その他の方法(こちらの方が確実?)
OOM Killerの優先順位を操作し、殺される対象から除外する。
postmaster起動直前にrootにて
#echo -1000 > /proc/self/oom_score_adj
-1000の値はカーネルにより異なるため注意。
詳細はPostgreSQLのマニュアル及びOS側を参照
以上