Oracleの初期化パラメータの算出式を教えてください。

一番、知りたいことはLarge_Pool_Sizeを決め打ちで算出する方法です。
できれば、モニタリングする方法と他の初期設定値から計算で算出する方法の2通りをお願いします。

実際にやろうとしていることは
・専用サーバ構成→共用サーバ構成への変更

システム自体は
  ・OLTP系
  ・Web-AP(Java)-DB(Oracle)の三層構造
  ・AP-DB間は50〜150セッションまで
  ・DBでやりとりするSQLはそれほど、    大量、複雑なデータがやりとりする
   わけではない
  ・現在、メモリ不足でパフォーマンスが
   悪い

  

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2004/09/13 16:51:21
  • 終了:--

回答(3件)

id:actual No.1

actual回答回数610ベストアンサー獲得回数12004/09/06 18:00:01

ポイント30pt

バージョンが分からないのですが・・・。

10gからはSGA内の各割り当ては自動になりました。

9i以前でのLARGE_POOL_SIZEの決め打ち方法もとくには見当たらないです。

http://www.oracle.co.jp/interactive/Techniques/VLDB/MTS/page0503...

実測(1)〜消費メモリー量とパフォーマンスの検証

id:s_genjou

すいません。 バージョンは8iです。

shared_pool_sizeが現在、80MBなので、それを大きくして逃げるというのも手ですかね?

2004/09/06 18:14:26
id:ken_na8c No.2

ken_na8c回答回数26ベストアンサー獲得回数02004/09/13 18:21:26

ポイント100pt

「デフォルト値次の両方に該当する場合は0。

1. パラレル実行によって、プールが要求されない。

2. DBWR_IO_SLAVES が設定されていない。

それ以外の場合は、PARALLEL_MAX_SERVERS、PARALLEL_

THREADS_PER_CPU、CLUSTER_DATABASE_INSTANCES、

DISPATCHERS およびDBWR_IO_SLAVES の値から導出される。」

「注意: デフォルト値を導出したとき、DISPATCHERS が構成されている

場合、共有サーバーに各セッション当たり250KB が加えられます。最終導

出値は、バックアップI/O バッファのポート固有のメモリー容量が含まれ

ます。導出されたデフォルト値の合計は、大きすぎて割当てができない

か、またはパフォーマンス問題の原因になる可能性があります。この場

合、LARGE_POOL_SIZE にデータベースが起動できるように十分な小さい

数を設定します。」

とあります。

また、PARALLEL_AUTOMATIC_TUNING=TRUEの場合、自動で設定されますので、

手動値は無視されます。

起動時に、メモリー不足や、割り当てられないなどのエラーが出た場合は、

「Oracle9i データベース・パフォーマンス・チューニング・ガイドおよびリファレンス リリース2」

の「21-49パラレル実行の使用」(LARGE_POOL_SIZE またはSHARED_POOL_SIZE)

を読んでみてください。

ところで、パフォーマンス不足であれば、PGAサイズ

のチューニングはどうでしょうか?

この程度のセッション数であれば専用サーバーの方が

パフォーマンスは良いと思いますが。

id:s_genjou

やっぱりざっくりと計算する方法はないんですね。

ちなみにパラレルクエリーを使っていないので、PARALLEL_AUTOMATIC_TUNING=TRUEにしても効果はなさそうです。

うーん、専用サーバの方がパフォーマンスがよさそうですが、2GBのメモリで専用サーバのプロセス数が150って大丈夫でしょうか?

2004/09/13 19:22:38
id:ken_na8c No.3

ken_na8c回答回数26ベストアンサー獲得回数02004/09/14 10:35:08

ポイント100pt

確かに、150セッションで2GBだとメモリーが少ないように感じますね。

ざっくりと出す方法といっても結局このシステムがどういった構成なり特性をもっているかによるので一概に言えないと思います。

同時セッション数が150として、各セッションでどのような規模のクエリーが発行されるかによりますね。

各セッション毎に1MBを見積もったとして150 x 1MB 150MBのLarge_poolが必要ということになります。

稼働中にこのサイズを越えた場合には共有プールからメモリを取られますので、このオーバーヘッドがパフォーマンス悪化につながります。

ここらへんは実際に計測して、妥当なLARGE_POOL_SIZEを見積もる必要があるのではないでしょうか。

id:s_genjou

やっぱりそうですよね。

調べてみます。 ありがとうございます。

2004/09/14 11:02:43

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません