Oracle常駐接続プーリング(DRCP)を導入して苦労したメモ(3)
4.DRCPの監視と調整方法
まず、DRCPおいて監視すべき項目を洗い出す。
・ listenerへの確立回数と拒否回数
・ 現在のプールサーバ数と使用されているプールサーバ数
・ DRCPへのリクエスト回数とウェイト回数
これらの項目をグラフ化すれば、DRCPはオンラインで設定変更可能なので、いろいろ調整できる。
監視はさまざまな方法あるが、うちの場合はMunin
を使用して監視を行っている。
Munin
のインストール方法は↓を参考させていただきました。
先ほど洗い出した項目のMunin-pluginが以下。
このMunin-pluginを使用して、グラフ化してどのように調整するかのメモ。
・ listenerへの確立回数と拒否回数
listenerへの確立回数と拒否回数の秒間平均値のグラフ。
確立回数が非常に多かったり、拒否回数が1以上の場合は、↓で説明したNUM_CBROK
の数を調整する。
Oracle常駐接続プーリング(DRCP)を導入して苦労したメモ(2) - Oracle Standard Editionでどこまでやれるか
・ 現在のプールサーバ数(NUM_OPEN_SERVERS)と使用されているプールサーバ数(NUM_BUSY_SERVERS)
V$CPOOL_STATS
ビューのNUM_OPEN_SERVERS
とNUM_BUSY_SERVERS
の値のグラフ。
NUM_OPEN_SERVERS
がNUM_BUSY_SERVERS
よりも遥かに多い場合は、
クローズされていないプールサーバ数が多く存在しているので、
INACTIVITY_TIMEOUT
の値を小さくしたり、MAX_THINK_TIME
をの値を小さくすることで対応できる。
・ DRCPへのリクエスト回数(NUM_REQUESTS)とウェイト回数(NUM_WAITS)
V$CPOOL_STATS
ビューのNUM_REQUESTS
とNUM_WAITS
の秒間平均値のグラフ。
NUM_WAITS
が1以上の場合は、プールサーバ数が足りていないので
MINSIZE
の値を大きくしたり、INCRSIZE
の値を大きくしたりすると良い。
設定変更時の注意点
基本的にはDBMS_CONNECTION_POOL.CONFIGURE_POOL
で変更できるが、
NUM_CBROK
はDBMS_CONNECTION_POOL.ALTER_PARAM
で変更する。
DBMS_CONNECTION_POOL.CONFIGURE_POOL
を使用する場合、
指定した項目以外がデフォルト値に戻ってしまうためすべて記述してあげる必要がある。
MINSIZE : 4 INCRSIZE : 10 execute dbms_connection_pool.configure_pool(null,minsize=>100); MINSIZE : 100 INCRSIZE : 2 すでにINCRSIZEを10としていた場合、INCRSIZEはデフォルトの2に戻ってしまう。 execute dbms_connection_pool.configure_pool(null,minsize=>100,INCRSIZE=>10); このように更新してあげる必要がある。
まだ導入して間もないので、間違いもあると思うのでいろいろとブログ内容を変更するかもしれない。。