RDS for Oracleの初期化パラメータを確認する(sessions,processes,memory_target)

AWS運用自動化サービス「Cloud Automator」

技術4課の渡辺です。
最近、OracleデータベースをRDS for Oracleへ移行する案件を担当することが増えてきました。
そこで「パラメータ何にしましょう?」という話になり、「RDSのデフォルト値ってどうなってるの?」となることが多くあります。

調査対象

  • DBエンジンはOracle Standard Edition Two 12.1.0.2.v12
  • db.m4ファミリー(db.m4.large、db.m4.xlarge、db.m4.2xlarge、db.m4.4xlarge)
  • パラメータグループの中のよく聞かれる3つのパラメータ(sessions、processes、memory_target)

まず結果

ParameterName db.m4.large db.m4.xlarge db.m4.2xlarge db.m4.4xlarge
sessions 1262 2548 5120 10256
processes 827 1683 3397 6823
memory_target 5840M 11904M 24000M 48256M

使用するインスタンスクラスによって、値が異なります。
結果を見れば、メモリサイズに比例して各パラメータが増えているのがわかりますね。

どう調査したか

地道に以下のようなコマンドで確認していきました。

各パラメータについて

ParameterName デフォルト値  意味
sessions    
processes LEAST({DBInstanceClassMemory/9868951}, 20000) DBInstanceClassMemory/9868951と20000のうちの小さい方が使用される
memory_target IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4}) DBInstanceClassHugePagesDefaultが無効の場合、DBInstanceClassMemoryの3/4。

パラメータグループをみて見ると、デフォルト値が空白だったり、式が入っています。

DBInstanceClassHugePagesDefault

今回確認するインスタンスクラスは、DBInstanceClassHugePagesDefaultはデフォルトで無効です。
Oracle DB インスタンスで huge pages を使用する

DBInstanceClassMemory

現在の DB インスタンスに関連付けられている DB インスタンスクラスに割り当てられたメモリから、インスタンスを管理する Amazon RDS プロセスによって使用されるメモリを引いたバイト数を返します。
DB パラメータグループを使用する

ところで、人材募集中らしい

私はオンプレではOracle経験がなく、AWSの移行案件で初めてOracleを触るようになりました。
ぜひ、Oracleが得意なエンジニアにJoinしていただき助けていただければと思っています。
オンプレでOracleやっていたけど、AWSにも興味あるという方、サーバーワークスに入れば活躍できるかもしれません。

AWS運用自動化サービス「Cloud Automator」