PostgreSQLとOOM Killer:厳格メモリ管理の理由
원제: PostgreSQL and the OOM Killer: Why We Use Strict Memory Overcommit
왜 중요한가
マネージドPostgreSQLサービスにおけるOOM対策の具体的手法を公開した点は、クラウドDB運用の信頼性基準として業界に参考事例を提示する。
Ubicloudは公式ブログにて、同社のPostgreSQLマネージドサービスがLinuxの「Strict Memory Overcommit」設定を採用している理由を技術的に解説した。OOM Killerによるデータベースプロセスの強制終了を防ぐため、メモリオーバーコミットを厳格に制限する運用方針とその技術的背景を詳述している。
UbicloudはPostgreSQL運用における重要な技術課題として、LinuxカーネルのOOM(Out Of Memory)Killerの問題を取り上げた。
Linuxはデフォルトでメモリのオーバーコミット(実際の物理メモリを超えた仮想メモリの割り当て)を許可しているが、メモリが実際に枯渇した際にはOOM Killerがプロセスを強制終了させる。PostgreSQLのような重要なデータベースプロセスがOOM Killerに停止させられると、予期しないダウンタイムやデータ整合性の問題が発生するリスクがある。
Ubicloudはこの問題に対処するため、Linuxカーネルの`vm.overcommit_memory`パラメータを「2」(Strict Overcommit)に設定する方針を採用している。この設定ではシステムがメモリ不足になる前にメモリ割り当て要求を拒否するため、OOM Killerが発動する状況自体を回避できる。
同社はこの設定がPostgreSQLの安定稼働に不可欠であるとし、マネージドPostgreSQLサービスの信頼性向上に直結すると説明している。また、Google Cloud上でもUbicloud Postgresが利用可能になったことも同ブログで案内されている。