トランザクションログを別のボリュームに配置する[ソリッドステート]?


12

多くの場合、トランザクションログは別のボリュームに分離されます。私が理解しているように、このプラクティスの理論的根拠は、トランザクションログのデータが順次書き込まれることであり、ハードドライブはランダムではなく、はるかに高速で書き込み操作を実行できることです。これは、ランダムな書き込みとは対照的に、データの連続したブロックを書き込むときにドライブ内の小さな針がはるかに短い距離を移動する必要があるためです。

(素朴な解釈はごめんなさい。私が読んだことを理解しようとしています。)

これを念頭に置いて…ソリッドステートドライブには、針やプラッターなどが中を動き回らないことがわかります。データベースとトランザクションログの両方が8つのソリッドステートドライブの単一のRAID 5にある場合、トランザクションログを独自の別のボリュームに移動することには本当に利点がありますか?想定される効率の向上が、針が移動してプラッターが回転する距離を減らす連続書き込みの前提に基づいており、ソリッドステートドライブにこれらの可動部分がない場合、ログを分離すると何が得られますか?


考慮すべきバスとバッファがまだあります。I / Oパターンの違いのために、それらを別々にしておきます。アプリがあまりトランザクションに対応していない場合、コストが問題になっているのであれば、その違いを知ることはできないでしょう。
エリックヒギンズ

「バス」という用語を使用する場合、マザーボードからRAIDカードへのデータの経路を指していますか?
チャドデッカー

2
「トランザクションログを独自の別のボリュームに移動する利点は本当にありますか?」ほぼ確実ではないが、速度がオーバープロビジョニングに逆さま全体RAID10への配列と信頼性を移動するに逆さま実際にそこにある(つまり、下のパーティショニング)のSSD
ジャックはtopanswers.xyz試し言う

回答:


10

簡単に言えば、単一のアレイを使用すると、8台のSSDドライブでデータからログを分離してもパフォーマンスが向上する可能性はほとんどありません。SSDに関するより詳細な(そして面白い)コメントについては、SSDのSQL:Hot and Crazy Loveを参照してください。SSDの相関障害に関する注意事項に特に注意してください。

SSD上のデータからログを分離することは、パフォーマンスの問題というよりもRPO(回復ポイントの目標)です。データ配列に障害が発生した場合にログ配列にアクセスできるようにする必要があるように、ログをデータから分離することでRPOを削減できるという考えです。RPOが重大な場合、相関する障害の問題を軽減するために、2つのアレイのそれぞれで異なるメーカー/モデルのドライブを慎重に検討します。

バスの帯域幅に関するコメントは無関係です。そのように多くのIOをシフトする必要がある場合、心配する大きな問題があります。


-4

HDDでは分離することが有益であることに同意するグループがありますが、SSDドライブではこれはもう必要ないと主張しています。

だから彼らに、「競合の問題がなければ、なぜRAID 10なのか?もうストリッピングする必要はない!だから、ミラーリングだけで十分だ。もちろん、8ドライブ、2倍のデータベースは必要ない」サイズで十分です!」。

ただし、実際には、何かがRAID 10を必要とする場合、それはログファイルです!

これは、シーケンシャルとランダムの問題だけではありません(以下のリソースを参照)が、SSDドライブの仕組みを理解した後は実際に非常に重要です。

長い話を短くするには(詳細な説明については、http://arstechnica.com/information-technology/2012/06/inside-the-ssd-revolution-how-solid-state-disks-really-work/を参照して ください)、 SSDドライブは読み取りと0の書き込みで非常に効率的ですが、1つを書き込むためにセクション全体を消去する必要があるので、1つを書き込むには効率的ではありません!

これは一般的な書き込みでは問題ではありませんが、とにかくメモリにバッファリングされ、ページ境界で書き出されますが、ログファイルはキャッシュをバイパスし、代わりにSQLサーバーがブロックするため、ログファイルの大きな問題ですログはディスクに書き込まれます!つまり、書き込みごとにセクション全体が消去される可能性があります。

したがって、最適化するために、ログファイル専用のすべての追加ディスク(データベースサイズの2倍、ストリッピングの必要はありません!)を提供することをお勧めします。

古い回答

3つの理由から、答えはイエスです。1)ランダムvsシーケンシャル-SSDがランダム書き込みのパフォーマンスを劇的に向上させることは明らかですが、以下のホワイトペーパーとリンクからわかるように、ランダムvsシーケンシャルの問題は依然として残っています。

2)信頼性-すべてのSSDドライブが同時に故障する可能性が高く、その場合、RAIDは保護されませんが、シーケンシャル専用に使用されるSSDドライブの寿命は異なるため、これが命の恩人になる可能性があります

3)書き込みの競合-独自のスピンドルにログを配置する理由は、ランダムとシーケンシャルだけではなく、書き込みの競合も原因です。これは、tempdbが別のボリュームにあることを示すことからもわかります。ここでの問題は、書き込みの競合に関するものでもあります。

また、ログへの書き込みは、ディスク表面に書き込まれるまでトランザクションがコミットされたと見なされることをブロックするため、これはログファイルにさらに適用する必要があります。

実際、ログについては、http: //www.dell.com/downloads/global/products/pvaul/en/ssd_vs_hdd_price_and_performance_study.pdfにあるapr Dellのホワイトペーパーとして通常のHDDドライブを使用できます

編集

Microsoftは、ディスクを回転させるためにtempdbを独自のアレイに配置することを推奨しています。

他にも多数あり、SQL Serverで一般に受け入れられている概念ですが、配列の分割に関する問題を誰も表明していませんでした。

さらに、SQL Serverチームは、ファイルグループとパーティショニングパーティション分割の概念を作成し、それらを別のアレイに移動できるようにすることを唯一の目的としています。

実際、http: //msdn.microsoft.com/en-us/library/ms187087(v = sql.105)のMSDNは、独自のアレイで非クラスター化インデックスを分離することでパフォーマンス上の利点があるかもしれないと推奨しています(ただし、これは、特定のワークロードについてのみ、すべての状況に対する一般的なアドバイスと見なされるべきではありません詳細については、http: //weblogs.sqlteam.com/dang/archive/2008/08/01/Are-you-a-DBAを参照してください。 -Monkey.aspx)。

そのため、回転するディスクで分離する理由は、順次読み取りとランダム読み取りの問題だけでなく、一般的な書き込みの競合(SSDにも当てはまる)に関係していると言うのは単なる論理的な拡張です。

一部の人々はそのアドバイスに同意せず、tempdbとそのボリューム(ジャックダグラスなど)を置くことの利点はないと考えているかもしれませんし、ログファイルを分離することの利点はないと主張するかもしれません(Mark Storeyとして) -Smith)、代わりに配列の分割がはるかに悪いと主張しますが、これはMicrosoftおよびコミュニティによって提案された一般的に受け入れられているアプローチに反する新しいアプローチであることを忘れないでください、そしてこれまで誰もへのリンクを提供していませんそれをサポートするベンチマークテスト。

すべてのダウンボッターに対する私の言葉は、特に1)あなたの意見が一般に認められた理論に反している場合2)ベンダーに反している場合、投稿とあなたとは異なる意見があるため、ポストをダウン投票することは非常に非倫理的であると思います)文書を所有している3)意見だけの証拠を提出していない。

しかし、この場合、私の投稿はこの理論の論理的な拡張に過ぎないので、さらにばかげています。したがって、この投稿をベッドのアドバイスと見なす人は、もちろんこの理論をアドバイスし、それらに投票するすべての投稿に戻る必要があります。

RAIDがオールドスクールの理論であると判断し、それを推奨するすべての投稿に賛成票を投じるとします。


コメントは詳細なディスカッション用ではありません。この会話はチャットに移動さました
ポールホワイト9
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.