Oralce単機同時キーパラメータsessions&processes


ネット上のoracle同時接続数に関する最適化記事は千編一律で、ほとんどが最大processesを150から300に変更しているが、なぜ300に変更したのか、最大でどれだけサポートできるかははっきりしていない.そこで公式文書に行って真相を探るつもりです.
まずprocessesとsessionsの2つの重要なパラメータです.

processes


Property
Description
Parameter type
Integer
Default valueデフォルト
100
Modifiable
No
Range of values値範囲
6 to operating system dependent.最小6、最大はオペレーティングシステムに依存
Basic
Yes
Real Application Clusters RACクラスタ
Multiple instances can have different values. RACクラスタマルチインスタンスは、異なるパラメータをサポートすることができる.
以上の内容は、公式ドキュメントPROSCESSESから
Oracleで定義されたPROCESSのデフォルト値に基づいて、この値はデフォルト100と言うべきですが、実際にはこれまで見たOracleのデフォルト値は150なので、このデフォルト値がマシン構成にどのように依存しているかは不明です.
PROCESSは、バックグラウンド・プロセス、ロック、ジョブ・キュー、並列実行など、Oracleに同時に接続できるオペレーティング・システムの最大ユーザー・プロセス数を指定します.また、SESSIONSおよびTRANSACTIONSパラメータのデフォルト値は、このパラメータから派生しています.したがって、PROCESSを調整する場合も、この2つのパラメータを調整する必要があります.
では、同時プロセス数の調整は、まず、通常の構成で単一マシンがどれだけのプロセスをサポートできるかを見て、sessionとtransactionsを修正する必要があります.
セッションを見てみましょう

sessions


Property
Description
Parameter type
Integer
Default value
Derived: (1.5 * PROCESSES) + 22
Modifiable
No
Range of values
1 to 2^16
Basic
Yes
詳細については、公式ドキュメントPROSCESSESを参照してください.
ドキュメントから見ると、sessionsのデフォルト値の計算式は次のとおりです.
 sessions = (1.5 * processes) + 22

セッションの定義は、クライアントとOracleサーバのログイン要求であり、ログイン要求のたびにセッションが生成されます.sessionsは、データベースの最大同時ユーザ数を効果的に決定します.このパラメータは常に、最大同時ユーザ数に等しい推定値に明示的に設定し、バックグラウンド・プロセス数に加え、再帰セッションの約10%を加算する必要があります.
ENQUEUE_RESOURCESとTRANSACTIONSもセッションの影響を受けるため、セッションを変更した後、この2つのパラメータを変更します.

pga_aggregate_target


このパラメータはPGAメモリの大きさであり,コンカレント数に関係している.プロCESSESが大きくなると、PGAも大きくなります.
pga_aggregate_target=  * 4M

このsqlでは、各接続プロセスで消費されるpgaサイズが表示されます.
select sum(pga_used_mem)/1024 total_used, sum(pga_used_mem)/count(1)/1024 used_avg, sum(pga_alloc_mem)/1024 total_alloc, sum(pga_alloc_mem)/count(1)/1024 alloc_avg from v$process;

Tips:processesパラメータを変更すると、sessionsパラメータとtransactionsパラメータは再起動後に自動的に調整されます.その影響順序は:processes>sessions>transactions.前のを調整すると、後ろのは自動的に調整されますが、後ろのを調整すると、前のは調整されません.