Oracleについて知りたい!ディスクグループとメモリ割当の質問

このQ&Aのポイント
  • Oracle10GR2 ASM管理のディスクグループの構成を外部冗長のストライプ無しにした場合の性能劣化具合について教えてください。
  • 一時表領域とデータ表領域を同じディスクグループに配置すると、性能にどの程度の劣化が生じるのでしょうか?
  • 物理メモリ8GB搭載、Oracle割当4GB、PGA_AGGREGATE_TARGET割当を100MBにした場合の性能問題について教えてください(データサイズは約300GB)。
回答を見る
  • ベストアンサー

Oracleについて教えて下さい。

Oracle10GR2 ASM管理のディスクグループとOracleメモリ割当についての質問です。  ※OS:WIN2K3 x64 DB:シングルインスタンス (1)ディスクグループの構成を外部冗長のストライプ無しにした場合の性能劣化具合 (2)一時表領域とデータ表領域を同じディスクグループに配置した場合の性能劣化具合 (3)物理メモリ8GB搭載、Oracle割当4GB、PGA_AGGREGATE_TARGET割当を100MBにした場合の性能問題(データサイズは約300GB) ※300GBのEXPDPも想定しています。 (4)現在割当てている各Oracleメモリサイズを変更せずにPGA_AGGREGATE_TARGETのみ増やす方法 以上、宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • IDii24
  • ベストアンサー率24% (1597/6506)
回答No.2

ドライブ構成で性能を上げるというのは、管理者側から見れば納得しやすい事だとは思いますが、設計側から言えばそれほど改善にはならない。むしろ毎年のように上がるハードの性能に頼ったほうが楽というのが答えです。数値で数パーセント上がるっていうのはあまり意味が無いのでは? 今ではSSDのサーバーも出ています。その中には二重書き込みを制限し、無駄なI/Oを排除する仕組みも出てきています。もはやこれからはそういうソフト&ハードで解決してしまう世界なんでしょうね。 設計側ではソフトで書き込みを制御する。読み込みを効率良く回すこれは簡単なこと。つまりマスターテーブルをRAID1のドライブなどに一個配置する。トランザクションテーブルをRAID5に配置。そしてテンポラリーテーブルをRAID0に一つ配置。さらにインデックスを別のRAID0に配置。 こういう構成も考えられますよね。このことで一度の読み込みで四つのドライブが同時に動く。それぞれが専属で動くという意味で非常に効率もよく、無駄にリソースも使いませんよね。もっと言えば良く使うデータを複数のディスクに配置するなど中身で分けるのも可能です。 このシステムが何に使われるかは今は無視しますけど、当然使い方で全然変わります。このようにシステムを作るということは業務を理解し、データも深く考えるということは必要ですが、ここまで厳密に考えているSEが少なくなったのも事実ですが、本来はSEとDBAの共同作業なのに今では忘れられてますよね。 Windowsの余計なサービスを停止するのは今や当たり前のことですが、スワップ領域の配置を考えているSEも少ないのが現状。スワップをシステム領域から切り離すのも必要です。 物理メモリはWindowsとOracleのバランスを良く考える。出来ればWIN2008以降のHyper-Vを使いGUI環境をカットしてしまったほうが良いと思います。コマンドベースの管理になりますけど、メモリの効率は格段に高いです。

power0315
質問者

お礼

ご指摘の通り、H/W性能に頼りつつストライプ構成、メモリ管理を設計時に協力して考えるべきですよね。 現実を見つつ対応していきたいと思います。 ご回答とご指摘有難う御座いました。

その他の回答 (1)

  • IDii24
  • ベストアンサー率24% (1597/6506)
回答No.1

サーバー性能、HDDのシーク値などでだいぶちがうと思いますけど。 とりあえず表領域と一時領域は別のディスクに逃がすのが通常は賢明でしょう。差も大きい。 メモリについては表領域に入れるレコードのサイズでも違いますから、データー容量で一概に言えるものではありません。そこはテーブル設計をするSEの腕だと思いますけどね。 クエリの書き方、インデックスのつけ方がパフォーマンスに大きく影響するところであり、これらは設計者側のセンスです。システム管理者が頭を悩ましても仕方ないのでは? 本来は使うシステムの目的で決める所でしょうし、大きなクエリがメインなのか、小さなクエリを頻繁に行うのかで、全然構成が違いますから。まずDBAがしっかりしていればこの辺の構成設定指示は適格にある筈ですが。 PGA_AGGREGATE_TARGETは自動でもいいのではよほどメモリを積んでいれば読み込みなどを考慮する必要はありますが。まあWINDOWSの不必要なサービスを停止して、そちらのメモリを縮小したほうがいいですが。

power0315
質問者

お礼

ご回答ありがとうございます。 追加で2項目質問させて下さい。 (1)一時表領域とデータ表領域を物理的に別なディスク上に各々ディスクグループを作成して配置を別にするという事でいいのでしょうか? 外部冗長のディスクを多数のストライプ化では、あまり性能改善は見られないものでしょうか? また、別のディスクに配置を分けた場合read/writeで理論値上だとどれ位の性能改善が見られるものでしょうか? 現状、Export DataPump処理が運用で耐えきれない位遅い状況が予想されstatspackのTop5イベントして、”db direct path read”と”DataPump I/O"がCPU待ちより上位のイベントに上がっていました。 OS観点としてOSパフォーマンスカウンタでCPUもメモリ使用率も確認したところ40%程度しか使用されていませんでした。 (2)PGA_AGGREGATE_TARGETは、あえて自動ではなく100MBにされていたので物理メモリを追加して400MB~物理メモリ*0.16程度まで増やすか自動にしようと考えています。 よほどメモリを積んでいれば読み込みなどを考慮する必要はありますとのご指摘がありましたが、このメモリというのはOracleへ割当てているメモリの事でしょうか?よほどというのはどれ位のサイズでしょうか? また、WINDOWSの不必要なサービスを停止して、そちらのメモリを縮小したほうがいいですが。とのご指摘もありますが、OSの空きメモリを増やす事でどのような性能面での利点が見込めるのでしょうか? 以上、宜しくお願いします。

関連するQ&A

  • pgaの最大使用サイズについて

    いつもお世話になっています。 pga_aggregate_targetを指定した場合、空いていれば指定した値一杯までpga領域として1SQLで使用できるのでしょうか? それとも、1SQLや1処理(ソートやハッシュジョイン)で上限があるのでしょうか? OS:solaris9 DBMS:Oracle Database 10g Enterprise Edition Release 10.1.0.5.0 以上、宜しくお願いします。

  • ORACLE の export/import ユーティリティのユーザ単位のimport のときは・・?

    oracle7にある表、view,indexなどをoracle8に持っていこうとしています。 ユーザ単位で表やindexをexport し oracle8 に持っていったのですが、元々はindexと表 が別々の表領域にあったのが、すべて同じ表領域になってしまいます。 ユーザ単位でのexportの場合は表領域の情報は格納されないそうですが、 このような場合、一番効率よく、元々の情報(アイテムごとの表領域にもどす) の形にimport するにはどのようにすればいいのですか? ちなみにFULLでのEXPORT/IMPORTは使わないでする方法を探しています。

  • Oracleトライアル版 インストールについて

    こんにちは、Oracle9iのトライアル版を インストールしようとしていますが エラーが出てしまい、対応がわからず困っています。 内容は以下の通りです。 エラー: 「インストーラのスワップ領域 C:\Documents and Settings\自分の 氏名\Local Settings\Temp\OraInstall2005-04-25_04-02-03AM 上のディスクの空き領域が足りません。 最低空き領域を101KB確保して 再思考してください。」 といわれてしまいます。 環境は WindowsXP HDDの空き領域は16GBあります。 メモリも256+512を積んでいます。 どこを対応してよいのか、どこがおかしいのか わかりません。アドバイスや必要な 追加情報等のご指摘をお願いいたします。

  • Vistaで未割り当てのディスクを認識させる方法

    こんにちは。教えて下さい。 Vistaで未割り当てのディスクを認識させる方法について教えて下さい。 「ディスクの管理」画面で、「未割り当ての領域」を右クリックしても選択肢がグレー表示で選択できません。 ディスクは320GBで、 Cドライブ:80.42GB 未割り当て:217.67GB となっています。 よろしくお願いします。

  • 大容量のRAMディスクは作れる?

    今現在、32bitVista,6GB環境でGavotteRamDiskにて OS領域3GB、RAMディスク3GB(OS管理外)で使用していますが、 OS領域,RAMディスクともに容量が足りません。 なので、64bitWin7にアップグレードしたうえで物理メモリを12GBに増量し、 OS領域6GB,RAMディスク6GBに更新したいのですが、 GavotteRamDiskの設定ツールには容量が3GBまでしかリストにありません。 質問ですが、GavotteRamDiskにて64bitWindows7で6GBの割り当ては可能でしょうか? GavotteRamDiskで不可能な場合は有償・無償問わず上記設定が可能なソフトを紹介してください。

  • usbメモリ(16GB)が、2GBしか認識しない?

    HDD Regenerator 2011というソフトがあったので、それを使ってHDDのエラーを直そうといました。 最初は、Bootable CD/DVDを作ろうとしたんですが、うまくできず、Bootable USB Flashと書いてあったのでUSBメモリ(16GB)をさして、実行したんですが、それも上手く出来なかったのです。 そのあと、USBメモリを見てみると、16GBのメモリが2GBになっているのです。 コンピュータの管理から、ディスクの管理で見てみると1.92GB FAT で正常 13.14GB未割り当てとなっていました。 FATから FAT32やNTFSにフォーマットしても1.92GBの所が変化するだけで未割り当て領域は変わりません。 USBメモリを初期状態に戻すことはできるのでしょうか? どうぞ、よろしくお願い致します。

  • HDD(システムディスク)のコピーで未割り当て領域をなくしたい。

    HDD(システムディスク)のコピーで未割り当て領域をなくしたい。 160GBのシステムディスクの容量が少なくなってきたのでウルトラドライブコピーというHDD引越しソフトを使って500GBのHDDにシステムディスクのコピーを行いました。コピーは成功したんですが500GBのうちコピーした160GB分のシステム領域のみアクティブでのこりの約340GBの領域は未割り当て領域として残ってしまっています。この残り340GBをパーティションなどで区切らず500GBのシステムドライブとして使うにはどうしたらいいでしょうか? 今回の作業手順は500GBHDD全領域のフォーマット→ウルトラドライブコピーでシステムディスクをコピー という手順で行いました。500GBをフォーマットしていない状態でも試しました。

  • RAMデイスク領域不足の表示がでる

    WIndows7 32bit 実装RAM容量 4GBです。 約1GBをI-Oデータの「RamPhantomEX」でJドライブに管理外メモリ割り当てとしてRAMデイスクにしてます。この頃頻繁に「RAMデイスク領域不足」が表示されます・ ■Jドライブ状態: 空き領域6.91MB/0.99GB ■RamPhantomEX Windows状態 システムメモリ 3006MB   空きメモリ 1998MB 管理外メモリ 1024MB  空きメモリ 0MB Windows終了時にメモリ内容をCドライブのI-Oデータ/バックアップフォルダに保存される設定にしてます。 最近ソフトのDLしましたがこの影響でしょうか? 領域は増やしたくないので空き領域を増やすにはどうしたらいいでしょうか?

  • win server 2008 インストール出来ず

    tabibitodamasiiと申します。 ご協力をお願いいたします。 現在、windows7(以下win7)プレインストールのパソコンにwindows server 2008(以下s2008)をインストールしています。 window7は正常動作しています。 経過 当初win7と別のボリュームにs2008をインストールし正常に動作しましたが、使用目的のドライブ構成(パーティション構成)になっていなかった為、パーティションの領域変更を実施しようと考えました。 win7の「ディスクの管理」でボリュームの拡張やボリュームの縮小を実施したところ、s2008が起動しなくなってしまいました。 そこでインストールされているs2008を諦め再インストール実施を考えました。 win7のディスク管理でs2008がインストールされていたボリュームを削除し、未割り当ての領域とし、 s2008のインストールディスク(DVD)からインストールを開始し、インストール先にその未割り当ての領域を指定したところ「このハードディスク領域にWindowsをインストールすることは出来ません。パーティションにはインストールされていない1つ以上のダイナミックボリュームが含まれています。」と表示されインストールが出来ませんでした。 インストール中に表示される「インストール場所を選択してください。」の表示を記します。 (下記の表示順は、名前:合計サイズ:空き領域:種類)  ディスク0パーティション2:200.0MB:20.0MB:ダイナミック  ディスク0パーティション3:123.4GB:108.4GB:ダイナミック  ディスク0未割り当ての領域:162.5GB:162.5GB:(空白) 因みにパーティション1はリカバリデータの領域(”回復パーティション”だと思います)。 その後、win7で未割り当ての領域をボリュームに割り当てたり(s2008インストーラーからは見えなくなりました。)、フォーマットしてみたりといろいろしましたが、その領域にs2008をインストールできませんでした。 win7のディスクの管理で見ると  ・12.00GB正常(回復パーティション)  ・200MB NTFS 正常(システム)  ・(C:)123.42GB NTFS 正常(ブート、ページファイル、クラッシュダンプ)   (↑当初148GBありボリュームの縮小で小さくしました。win7の領域だと思います。)  ・162.48GB 未割り当て   (↑当初148GBで、この領域にs2008をインストールしていました。) と表示されます。 この未割り当ての領域にs2008をインストールするにはどうすればよいのでしょうか。 出来ればこの未割り当ての領域を60GB、80GB程度に分割して60GBの領域にs2008をインストールしたいと考えております。 情報が不十分でしたらご指摘ください。 お分かりの方がいらっしゃいましたら、是非ご教授願います。 よろしくお願いいたします。

  • Windows 32BitOS上で稼動するOracleのメモリの上限に

    Windows 32BitOS上で稼動するOracleのメモリの上限についての質問です。 現在、2台のクラスタで構成されたWindowsServerのOracleデータベースの移行を検討しております。 移行するサーバのスペックは以下の通りです。 OS:Windows2000 AdvancedServer(32Bit) 2台のOFSを使用したクラスタリング構成(アクティブ・スタンバイ) DB:Oracle 9i 搭載CPU:Xeon2.80GHz ×2 搭載メモリ:2.6GB 新規に構築するサーバは以下の構成を検討しています。 OS:Windows2003Server EnterPriseEdition(32Bit) 2台のOFSを使用したクラスタリング構成(アクティブ・スタンバイ) DB:Oracle 9i 搭載CPU:Xeon2.93GHz(4Core) 搭載メモリ:4.0GB 要件として、OracleのVersionUp、64Bitへの変更の検証が出来ないとなった為、上記構成になりました。 現在、複数のDBインスタンスをクラスタグループ化して稼動させています。 移行にあたって、DBインスタンスを増やしたいという要件が出た為、合わせて新規構築するサーバのメモリの増強を検討しております。 そこで、32BitOS上での4GB以上のメモリの搭載について質問させて下さい。 Windows2003Server EnterPriseEdition(32Bit)では、最大64GBまでメモリを搭載できますが、32Bitで作成されたアプリケーションでは、1プロセスあたり最大2GBまでしか使用出来ないという点までは認識しております。 この、最大2GBという制約はOS上のプロセス一つ一つが2GB以上メモリを使用出来ないという認識であっていますでしょうか。 Oracleサーバ上で複数のDBインスタンスを稼動させた場合、プロセス:Oracle.exeが複数起動することになりそれぞれのメモリの使用量が2GBまでと考えております。 その為、1インスタンスで2GB以上のメモリを消費するようなアプリケーションの構築は32Bitのアプリケーションという時点で不可能だと思いますが、複数のインスタンスを稼動させる(=複数のOracleプロセスを立ち上げる)場合、4GBを超えて大量のメモリを搭載することは意味があると考えています。 ※この場合、4GBという数字自体は意味が無いと思います。 CPU、DiskI/O等、Networkその他が、システムのボトルネックにはならないという前提で考えた場合、この観点で32BitOSでメモリの増強を検討するという認識は合っていますでしょうか。 以上、宜しくお願いいたします。

専門家に質問してみよう