人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Oracleの初期化パラメータの算出式を教えてください。
一番、知りたいことはLarge_Pool_Sizeを決め打ちで算出する方法です。
できれば、モニタリングする方法と他の初期設定値から計算で算出する方法の2通りをお願いします。

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

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


●質問者: s_genjou
●カテゴリ:ウェブ制作
✍キーワード:AP dB Java Oracle SQL
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● actual
●30ポイント

http://publib.boulder.ibm.com/tividd/td/tec/SC32-1233-00/ja_JA/H...

Oracle の構成オプション

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

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

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

http://backno.mag2.com/reader/BackBody?id=2004072117000000000300...

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

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

◎質問者からの返答

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

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


2 ● ken_na8c
●100ポイント

http://otn.oracle.co.jp/mp/EL/sll?p=985-2360-1-0

ログイン

「デフォルト値次の両方に該当する場合は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サイズ

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

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

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

◎質問者からの返答

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

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

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


3 ● ken_na8c
●100ポイント

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

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

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

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

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

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

◎質問者からの返答

やっぱりそうですよね。

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ