• ベストアンサー

共有メモリを拡大するがゆえの弊害ってありますか?

pon2pon2の回答

  • ベストアンサー
  • pon2pon2
  • ベストアンサー率42% (107/250)
回答No.2

共有メモリということは、 変更したパラメータは「SGA_TARGET」? それとも個々のパラメータ(shared_pool_size、db_cache_size)? このあたりは、リソースのチューニングの問題になってきます。 SGA(共有メモリ)は各セッション共有の用途で使用されるもの、 例えば、ディスクから読み出したデータだったり、すでに誰かが 実行済みで、解析済みのSQLだったり、ディクショナリーだったり、 そういった共有用途で使用される領域で、DB起動時に、 物理メモリー、仮想メモリーから事前に決めたサイズを割り当てて、 OracleDBの共有用途専用として確保する領域です。 もし、SGA_TARGETを広げて、全体のパフォーマンスが遅くなったのだとしたら、 物理メモリでは不足し、スワップ(ディスクの仮想メモリ)を使用している 可能性があります。当然、物理メモリとディスクで代用した仮想メモリでは、 処理スピードは段違いです。 個々のパラメータを変更して遅くなったと感じた場合は、 たとえば、バッファキャッシュを大きくするため、最低値として、 「db_cache_size」の値をかなり大きくし、SGA_TARGETにかなり近い値に したとすると、SGAでは他の用途、共有プールだったり、redoバッファだったり、 いろいろな用途でのも使用していますから、他の用途用のメモリが 不足し、パフォーマンスが遅延する可能性があります。 また、個々に値を設定した状態で、自動メモリ管理(10g)を使用している場合には、 通常の用途よりも1ステップ作業が増えるので、何か不具合に該当することが あるかもしれません。 ま、不具合であったら、サポートに確認しましょう。 処理全体が遅いのか、特定の処理が遅いのか、 遅くなった時期は毎回遅いのか、ある時だけ遅く感じたのか 問題切り分けをしましょう。 処理する対象のデータが増えれば、処理が遅くなるのは当然ですし、 索引などのメンテナンスなどがきちんとされていなければ、 ある日突然、実行計画が変わって遅くなることだってあります。 DBのパフォーマンスがあがり、処理可能量が増加し、 いままで発生しなかったような遅延が発生しているかもしれません。 また、DB上の処理の問題ではなく、APServerやNetworkの問題だったり、 H/W上の問題だったりするかもしれません。 こういった問題を切り分けするために、StatsPackやDiagnosticsPack といったツールがあり、OS上のパフォーマンス情報を収集しておくと いったことも、ある日突然パフォーマンスダウンといった場合に有効です。 まずは、何事も問題切り分けからです。 もし、難しそうであるなら、サポートの指示を仰ぐのも一つの手です。 バッファキャッシュは物理メモリのサイズなどの条件などを全く考えないなら、 大きければ、大きいほどよいです。 ただし、32bit版だとSGAのメモリ上限は通常、2GBまでです。 このあたりは、「32bit Oracle メモリ上限」とかでgoogleで 調べれば情報はあるはずです。 Oracleでは、データのやりとりは、ディスクと直接行うのではなく、 ディスク内から、必要なデータの入っているブロックを、 メモリ上に確保したSGAの中のバッファキャッシュ用の領域に読み込み、 その読み込んだデータを元に、SQLPLUSなどのユーザープロセスに対し 結果を返しています。 つまり、バッファキャッシュとは、 ディスクの中から、SQLが処理に必要なデータをためておくための領域のことになります。

mr-r00
質問者

お礼

ありがとうございます!参考にさせていただきます

関連するQ&A

  • 共有メモリについて

    Linux関連でプログラムの作成をしているのですが、 共有メモリについての知識がほとんどありません。 それで 1.共有メモリの最大サイズ(カーネルの設定によると思いますが、デフォルトの値など) 2.共有メモリを使用するさいの排他処理について などがわかる方、もしくは解説したHPなどがありましたらどうか教えてください。 よろしくお願いします。

  • Oracle10g キャッシュヒット率について

    Linuxサーバー(Red Hat Enterprise Linux 5.5)にOracle10g(10.2.0.4)をインストールしたのですが、パフォーマンスの問題で、バッファ・キャッシュ・ヒット率が90%を下回っており、まずはこれを解決する必要があるとのことで、少し調べ始めたのですが、10gではsga_targetで自動管理できるということを知りました。 最終目的は、パフォーマンス最適化を目指していますが、そのために確認しておくべき内容および設定方法を教えてください(あるいは回答にマッチしたサイトがあれば)。sga_targetを攻略すれば達成できるのでしょうか? 当面の目的はバッファ・キャッシュ・ヒット率を上げることですが、どうすればよいでしょうか? Oracleド素人ですので、コマンドベースで教えていただけると助かります(^^; よろしくお願いします。

  • Win2Kで、仮想メモリを使わないで、実メモリだけ使いたい!

    こういった場合どうすればいいでしょうか? パフォーマンスオプションで、初期サイズ2MB、最大サイズ3MBにしているのですがPCを立ち上げた時に、もっと仮想メモリをとりましょうの旨のエラーメッセージがでます。出ない方法を教えてください。今現在、使用メモリを調べたのですが、100MB弱なので、かなり余裕があると思います。また、メモリ容量は、256+128MBありますが、大丈夫でしょうか?

  • win2000で仮想メモリ0

    気になったので質問します、よろしくお願いしますm(__)m 目的はHDDへのアクセスを減らしパフォーマンスを少しでもあげようってことです。 通常物理メモリからあふれたら仮想メモリ(HDD)へいってしまうんですよね、なのでこうしてみました win2kを使ってます、メモリを1GBから3GBへ増設。 1GBのときは別にメモリが足りませーんなどエラーメッセージは出ませんでした、最大でも使用は550MBでした、たしか。 3GBに増設したとき1GBは普通に使って残り2GBはRAMディスクにしました、このRAMディスクに仮想メモリを1GB~1.5GBの範囲で作成、残り0.5GBはインターネットキャッシュとかに使用。 これでHDD内には仮想メモリとして使う部分がないのでアクセスが減らせると思うんですがどうなんでしょう? やっぱり仮想メモリはHDDにあるから本領発揮なんでしょうか?私のやったことは意味ないんでしょうか? アドバイス等よろしくお願いしますm(__)m

  • コンピューターのメモリ不足表示について

    某Z会のインターネット通信教育コースを受講しています。 昨日まで、受講用の映像が見られていたのに、本日受講しようとすると、以下のメッセージが出て、接続できなくなりました。↓ 「Windows Media Player  コンピューターのメモリが不足しています。他のプログラムを終了してから、再試行してください。」 昨日までは、正常でしたし、昨日と同じ映像を見ようとしてもエラーになります。 メッセージのとおり、他のウィンドウやソフトを全て閉じても、PCを再起動してから他のソフトを開かずにやってみても同じです。 OSはWindows7、Media Playerのバージョンは12.0.7600.16667となっています。 ちなみに、タスクマネージャからパフォーマンスを調べてみても、 CPU占有率0% メモリ1.06GB 物理メモリ  合計 2814  キャッシュ済 1306  利用可能 1721  空きメモリ 479 カーネルメモリ  ページ 205  非ページ 479 …となっていて、メモリ不足は考えにくいのですが、どうすればいいでしょうか?

  • ストアド実行でORA-4030エラー

    PACKAGE(ストアド)実行中に以下のエラー ORA-04030 XXバイトを割り当てようとしてプロセス・メモリーが不足)しました。 XXバイトは64KBぐらい 対処方法をどなたかご教示ください! (環境) OS:Red Hat Linux Advaced Server 2.1 Oracle9i Databese Release 2 SGA  物理メモリ:13GB  共有プール:512MB  バッファ・キャッシュ:256MB  ラージ・プール:128MB  Javaプール:160MB PGA 128MB

  • バッファ・キャッシュの変更方法

    基本的な質問かもしれませんが、 Oracle(9.2)のEnterpriseManagerコンソールで、 SGAのバッファ・キャッシュを大きくしたいのですが、 以下のようなメッセージが出て、変更できません。 どうしたら変更できるのでしょうか? いろいろ調べてみたのですが、わからなくて 困っています。どうかご教示の程、宜しく お願い致します。 「動的パラメータの適用に失敗しました。ORA-02097: 指定した値が無効なので、パラメータを変更でき ません。ORA-00384:キャッシュを大きくするには メモリーが足りません。」

  • Windows 2003 Enterprise Edition(32bit)のメモリについて

    お世話になります。 環境:Oracle 10.2.0.4.0     RAC構成(2つのノード)     ASM自動管理 OS:Windows 2003 Server EnterPrise Edition (32bit) データ量:140GB システム:24時間365日稼働       OLTPが中心だが一部DSS系も混在 セッション数:ピーク時に300 メモリ:4GB ※4GT、VLM等は使用しておりません。 SGA:1000MB バッファキャッシュ:432MB 共有プール :336MB ラージプール:104MB JAVAプール:16MB 【問題】 4か月前にシングル環境からRAC環境にリプレースを行ったが接続エラーが発生。 原因はORA-4031、TNS-12531が出力されていることから共有プールの断片化が原因と判断していたがORA-4031発生後に TNS-12531が連続して出力していることからOSリソース不足又はOracleメモリ割り当て不足の可能性もでてきた。 RAC構成にしたことでリソースが増加しておりWindowsのパフォーマンスモニタでOracle関連のプロセスのVirtual Bytesを集計したところ、 両ノードとも2500MB程度だった。(oracle.exeは1300MB) 仮想メモリ2GBの問題は1プロセス2GB制限ということから問題なし。 OS全体では物理的に4GBあるがカーネルメモリ2GB、ユーザメモリ2GBの制限がある?と聞いたことがある。 ただ上記計測はVirtual Bytesの為、OS全体のメモリ使用量を見る場合はPrivate Bytesを見るべき?(oracle.exeのPrivate Bytesは1150MB) また、ベンダー様から現在の空き容量は1.7GBあるということを聞いたがユーザーが使用できるメモリ使用量が空いているのかわからない。 以上のような背景から以下、質問になります。 質問(1) 上記WindowsでOS全体のリソース不足の判断基準とするべきものはPrivate Bytesになるのでしょうか? 質問(2) 上記Windowsだとユーザが使用できる物理的なメモリは2GBになるのでしょうか。 または4GBフルで使用できるのでしょうか。 (oracle.exe以外にもrac関連のプロセスが多いのでどこまで使用できるのかが不安) 質問(3) リソースという観点から余裕があるなしの判断にできることがあればご教授頂きたいです。 宜しくお願い致します。

  • Core2Quad 9550sとCore i7 860のメモリについて

    パソコン購入にあたって、Core2Quad 9550s と Core i7 860を比較したんですが、メモリに関してひとつだけ気になった点があるので質問させてください。  HTとターボブースト等がある分、i7 860の方が性能的(速度的)には良いのでしょう。ところがメモリについてはC2Q 9550sはL2キャッシュまでしかありませんが12MB(共有)あります。i7 860はL2キャッシュは各コアに256KBで、さらにL3キャッシュが8MB(共有)だそうですが、これはどちらが高パフォーマンスなのでしょうか?  自分のような素人の考えだと、C2Q 9550sの12MB(L2)に対して、i7 860の256KB×4(L2)と8MB(L3)の計約9MBと考えると、12MBもあるC2Q 9550sの方が性能的にはいいのかなと思ってしまうのですが…。  PCに疎い自分なりに、ネットや本で色々調べてみたんですが、そこのところが未だに良くわからないもので、もし詳しい方いらっしゃいましたら、教えて頂けないでしょうか。宜しくお願いします。  

  • 共有フォルダが開かない

    お世話になります。 会社で使っている端末から特定の共有フォルダだけが開けなくなってしまいました。開こうとすると一瞬フォルダの中身が表示されてウィンドウが閉じてしまい、下記メッセージが。 「アプリケーション"Finder"は予期せず終了しました。現在開いているアプリケーション・・・再起動してください」 また次のようなメッセージが出る事もあります。 「システムエラーが起きました。"Finder"エラータイプ10 環境ですが、 本体:i-Mac OS:8.6 メモリ:160M でして会社のLANに接続されております。ファイルサーバはNTでここに問題の共有フォルダがおかれています。 他のMac端末からは開くのですが・・ 再起動数回・PRAMのクリアなるものをしましたが現象かわりません。 宜しくお願いします。

    • 締切済み
    • Mac