技術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年入社 / 地味な内容を丁寧に書きたい