web-dev-qa-db-ja.com

SQL Server 2008R2の最適なドライブ構成

SQL Server 2008 R2を実行している次の設定のかなりビジーなデータベースサーバーがあります。

  • SATA RAID 1(2ドライブ)-OS /プログラム
  • SAS RAID 10(4ドライブ)-SQLデータベースファイル(データとログ)
  • SAS RAID 1(2ドライブ)-TempDB(データとログ)

このサーバーにドライブを追加できないと仮定して、使用可能な構成を最大限に活用しましたか?または、たとえば、ログがデータファイルから分離されている別のスキームを検討する必要がありますか?

更新:

ハードウェアの詳細を要求した場合:

  • SATAドライブ(OS /プログラムパーティションに使用)は次のとおりです。WD7200 RPM 3 Gb/s 3.5インチSATA
  • 他のアレイで使用されているSASドライブは次のとおりです:Seagate 15K RPM 6 Gb/s 3.5インチSAS
  • 使用されているRAIDコントローラーは、LSI 9260-8i SAS/SATA 6 Gb 8ポートです。

更新2:

私が受け取ったフィードバックに基づいて、私には次の実行可能なオプションから選択できるようです-私は可能性があると教えてくれる誰かに賞金を授与します私が概説した環境で最高になる:

  1. すべてをそのままにしておきます-私はおそらくもっと良くはしません
  2. 2 SAS RAID 1ドライブを既存のRAID 10アレイに移動して、合計6つのディスクで構成します。
  3. ログファイルをSAS RAID 1に移動するか、TempDB(データまたはログ)をRAID 10に再配置します。
19
DanP

この質問の変形は、半規則的に出てきます:

また、データとログの分離の「ベストプラクティス」について、たまに喧嘩することがあります。

このサーバーが行っていることをより詳細に分析することなく、以前と同じアドバイスが適用されます。

  • OS用RAID 1
  • データ/ログ/ tempdb用のRAID 10(6ディスク)

使用可能なスピンドルが非常に少ないため、スプリット内にポイントが存在することはほとんどありません。より大きなIOP容量を持つ単一のアレイは、通常、2つの小さなアレイよりもワークロードのしこりや隆起を吸収します。

テストする価値のある1つのバリエーションは、tempdbをOSドライブに置くことです。構成を公平に比較​​できるように、繰り返し再生できる代表的なワークロードがある場合にのみ行ってください。本番環境でこの配置を採用する場合は、tempdbの増加が制限されていることを確認してください。これにより、OSドライブのすべての空き領域を誤って消費しないようにします。

OSドライブが7200RPMのコースターであることを考えると、OSドライブ構成のtempdbに何らかの利点があるとしたら、私は驚くでしょう。

14

それはすべてワークロードに依存しますが、ドライブが6つしかないため、オプションが制限されます。ワークロードがソート、ハッシュテーブル、スナップショット分離などの要素についてtempdbに大きく依存していない場合は、RAID 10で6 SASドライブを一緒に使用することをお勧めします。ただし、 tempdbの使用率が高いことを証明するメトリックスを知っているか、持っている場合は、現状のままにしておく必要があります。

7
Patrick Keisler

「非常に忙しい」という意味に大きく依存します:さまざまなワークロードパターン(重いかどうか、一括操作が一般的かどうか、同時アクセスのレベルなど、多くの変数のうち3つを挙げます)には、特定のスピンドル配置のパフォーマンスに大きな影響を与えます。

書き込みが多い状況では、ログをデータから分離すると、書き込みごとにログとデータファイルの両方が更新されるため、大きな違いが生じる可能性があります。したがって、両方のファイルセットが同じスピンドルセットにある場合は、かなりの量の余分なヘッドフリッピングが発生します。 。

ワークロード(およびそれらのドライブとそれらのドライブとマシンの間にあるコントローラーの仕様)をこれ以上参照しないと、3つのボリューム(OS +プログラムとtempdb(データ)用、メインDB用)を使用する傾向がありますデータ、ログの3番目(tempdbとメインDBの両方)。

もちろん、ワークロードの書き込み操作が非常に軽い場合は、データとログを別々に保持することについてあまり時間をかけないでください。パフォーマンスにほとんど差がなく、ボリューム全体をそれら専用にすることは非常に無駄になります。スペース。

2
David Spillett

実際の答えはニーズによって異なりますが、一般に「tempdbを独自のアレイに配置する」よりも「データを配置して異なるアレイにログオンする」ことが重要です。

利用可能なドライブの数を考えると、私の出発点は次のようになります。

  1. 2つのドライブ、RAID 1-オペレーティングシステム、実行可能ファイル、ページファイル。
  2. 4つのドライブ、RAID 5-すべてのデータファイル(または、RAID 1 + 0)
  3. 2つのドライブ、RAID 1-すべてのログファイル

何をすべきか [〜#〜] sqlio [〜#〜] を使用して、さまざまなドライブ構成のパフォーマンスをテストします。

2