書き込みデータベースが重い場合、DRAM SSDにOracle REDOログを配置しますか?


9

Sun M4000を書き込みの多いデータベースを備えたEMC CX4-120アレイに接続しています。ピークは約1200 IO / sと12MB / sです。

EMCによると、私はEMCアレイの書き込みキャッシュを飽和させています。

REDOログをDRAMベースのSSDに移動するのが最も簡単な解決策だと思います。これにより、EMCアレイの負荷が半分になり、アプリでログバッファー待機が発生しなくなります。はい、DBWRがボトルネックになる可能性がありますが、アプリはそれを待機しません(やり直しコミットで行うように!)

現在、4 GBのREDOログを約4つ循環しているため、20 GB程度のSSDでも大きな違いが生まれます。これは短期間のストレージであり、常に上書きされているため、フラッシュベースのSSDはおそらく素晴らしいアイデアではありません。

M4000には追加のドライブロットがないため、PCI-Eカードは完璧です。外付けにするか、ブートボリュームをEMCに移動して、ローカルドライブを解放できます。

SunはFlash Accelerator F20 PCIeカードを販売していますが、これは一部のSATAディスクのキャッシュであり、DRAM SSDソリューションではないようです。詳細はおおざっぱで、サポートされているM4000はリストされていません。人間の助けを求めてSunの電話ツリーと戦うことにうんざりしています。:(

他の人はDRAM SSDが進むべき道であることに同意しますか?ハードウェアの推奨事項はありますか?

更新 以下のコメントの情報に加えて、「commit_write」のさまざまな設定を試しましたが、違いはありませんでした。


ログをどこかにアーカイブしていますか?最終的にSSDからディスクにコピーする必要がある場合は、ボトルネックをアーカイブに移動するだけです。
Gary、

はい... REDOログはアーカイブされてお​​り、順次書き込みであるため、REDOログのコピー中にIOは実際には約80MB / sに増加します。REDOログは順次であると常に思っていましたが、そうではありませんでした。
rmeden 2010

回答:


9

まず、アレイにディスクが非常に少ないと思います。1200IOPSは、12個の回転ディスクで簡単にサポートできます(ディスクあたり100 IOPSは非常に妥当です)。キャッシュがそれを処理できない場合は、1200 IOPSの持続書き込み速度が、ディスクがサポートできる速度をはるかに超えていることを意味します。

とにかく、REDOログ用のSSDは役に立ちそうにありません。まず、セッションは主にCOMMITステートメントで待機していますか?確認するには、statspack / AWRで上位の待機イベントを確認してください。I / Oの約95%がREDOログに対するものではないと思います。たとえば、5つのインデックスを持つテーブルへの単一行の挿入は、1つのI / Oを実行して、テーブルブロック(行のスペースがある)を読み取り、5つのインデックスブロックを読み取り(それらを更新する)、1つのデータブロックに書き込み、1つの元に戻すことができます。ブロックと5つのインデックスブロック(非リーフブロックが更新されている場合はそれ以上)および1つのREDOブロック。したがって、statspackを確認して待機イベントを確認してください。おそらく、データとインデックスの読み取りと書き込みの両方をたくさん待っています。読み取りを待機するとINSERTの速度が低下し、書き込みアクティビティによってREADがさらに遅くなります。これは同じディスクです(BTW-本当にすべてのインデックスが必要ですか?必要のないものを削除すると、挿入が加速されます)。

チェックするもう1つのことは、RAID定義-RAID1(ミラーリング-各書き込みは2つの書き込み)またはRAID 5(各書き込みは、チェックサム計算のために2つの読み取りと2つの書き込み)です。RAID 5は、書き込み集中型のロードでは速度がかなり遅くなります。

ところで、ディスクが書き込み負荷を処理できない場合、DBWRがボトルネックになります。SGAはダーティブロックでいっぱいになり、DBWRがダーティブロックをディスクに書き込むことができるまで、新しいブロック(処理/更新が必要なインデックスブロックなど)を読み取る余地がなくなります。再び、statspack / awr report / addmをチェックして、通常は上位5つの待機イベントに基づいて、ボトルネックを診断します。


1
+1-できれば+10を差し上げます。
Helvick

2
ボトルネックの場所を実際に確認するためのアドバイスの+1。
DCookie 2010

待機は、「ログファイルの同期」と「ログバッファスペース」です。DDを使用すると、ボリュームに約150MB / sを取得できます。LGWRはIOが完了するのを待ってから次のIOを送信しているようです。IOサービス時間は約1msです。EMCには、なんと500MBのキャッシュがあります。EMCによると、ボックス全体をアップグレードしないと、キャッシュを増やすことはできません。アレイには22 TBありますが、キャッシュが少ないものを提供する理由は私を超えています。REDOログは現在5ワイドRAID 5にありますが、RAID 10(キャッシュを疑う別の理由)との違いはありませんでした
rmeden

ところで、より多くのキャッシュがあった場合、ディスクはまだ追いつかないかもしれません。REDOをEMCアレイから移動すると、データディスクの容量が解放され、I / Oが半分になります。小型のDRAM SSDは、小型である可能性があるため、最も安価で高性能なディスクである可能性があります。
rmeden 2010

meden-Oracleが1秒間に書き込むREDOの量は?合計I / Oは12 MB / sで1200 IOPSだと言っていましたが、これは大量の小さなIO(平均10KB)を意味します。REDOログをSSDに移動すると、DBWRがボトルネックになり、INSERTがSGA内の空きバッファを待機するため、異なる待機イベントが表示されるだけです。確認してください-使用しているRAIDのタイプ、ストライプサイズとOracleブロックサイズは何ですか(また、データファイルはすべてのディスクにストライプ化されていますか?)。また、ほとんどのI / Oのソースをstatspackにチェックインします-それはやり直しまたは他のことです-テーブルスペースごとのI / Oをチェックします
Ofir Manor

2

ddは、ブロック入出力と比較して何もありません。

他のいくつかのビューについては、チェックしてください、anandtech.comは、SAS回転とSSDをさまざまな組み合わせで使用して、(MS SQLサーバーで許可された)徹底的なテストを行いました)。

しかし、はい。RAID5とRAID 10が同じ(書き込みの場合)の場合は、何か問題があります。RAID 5は線形書き込みの方が高速である可能性があります(つまり、メモリでパリティを実行してから、ストライプとパリティを一度に書き込むことができます)。他の人が指摘したように)、raid 10は2倍以上速くなるはずです。

ハードウェアにお金をかける前に、もっと深く掘り下げる必要があります。


2

「forcedirectio」オプションを使用してUFSパーティションをマウントし、Oracleパラメータ「filesystemio_options」を「setall」に設定することに関する投稿を見ました。

試してみたところ、Oracleの書き込みが4〜5倍向上しました。うん!

主な症状は、スループットは低いですが、ディスクの応答時間は良好でした。これは一部の人々を助け、他の人々を助けないようです。それは確かに私のために仕事をしました。

新しいサーバーにはSSDを検討するかもしれませんが、このサーバーは現在正常に動作しています。

ロバート


最も可能性が高いのは、ダイレクトI / Oを有効にしたことが原因ではなく、非同期I / Oを有効にしたことが原因です。Oracleでは、setallはdirect + asyncを意味します。
kubanczyk 2013

1

このボックスがLinuxを実行するx86 / 64ボックスのみだった場合、FusionIO PCIeドライブカードの1つを喜んでお勧めします。これらは驚くほど高速で、SSDのように大量の書き込みで「死ぬ」ことはありません。残念ながら、それらはSparcとSolarisのどちらでもサポートされていません。ただし、これについて話し合うためにそれらに連絡したい場合があります。


1

F20e PCIeカードは、機能的にはFusion I / Oに似ています。基本的には、PCIeに接続されたフラッシュSSDです。書き込み負荷の高いワークロードでは、SSDの消去/プログラムサイクルがボトルネックにならないように、(何らかの種類のドライブベースのガベージコレクションを介して)十分な空きブロックを維持することと、ボトルネックになることの両方を心配する必要があります。フラッシュベースのSSDで利用できる限られた書き込みサイクル。それは間違いなく速いですが、この仕事に最適なキットではないかもしれません。


ジョン。うまくいくとは思いませんでした。とにかく、SunはM4000でもサポートしていません。:(
rmeden
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.