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

記事タイトルとURLをコピーする

技術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

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

どう調査したか

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

SQL> show parameters memory_target
 
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
memory_target big integer 24000M

各パラメータについて

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 パラメータグループを使用する

渡辺 信秀(記事一覧)

2017年入社 / 地味な内容を丁寧に書きたい