OK、興味のある方は、
数か月前の質問で、3台のサーバーのそれぞれに直接接続されたSSDドライブをインストールし、DBデータとログファイルをSANからそれらのSSDドライブに移動するだけで問題を解決しました。
SSDドライブのインストールを決定する前に、この問題に関するすべての投稿の推奨事項を使用してこの問題を調査するために私がしたことの概要を以下に示します。
1)3つのサーバーすべてで、次のドライブのPerfMonカウンターの収集を開始しました。
Disk F:
SANベースの論理ディスク、MDFデータファイルを
Disk I:
含むSANベースの論理ディスク、LDFログファイルを含む
Disk T:
SSDが直接接続され、tempDB専用
下の写真は、2週間の期間に収集された平均値です
Disk I: (LDF)
無視することができます:ディスク私はそのような小さなIOとレイテンシは、非常に低いですしてい
ますが、その見ることができるDisk T: (TempDB)
大きなIOを比較しましたDisk F: (MDF)
- 0ミリ秒を、そしてそれは同時に、より良いレイテンシを持っています
明らかに、ディスクFには何か問題があります。データファイルが存在する場所では、IOが低いにもかかわらず、レイテンシと平均ディスク書き込みキューが高くなります。
2)このWebサイトからのクエリを使用して、個々のデータベースのレイテンシを確認しました
https://www.brentozar.com/blitz/slow-storage-reads-writes/
プライマリサーバー上のアクティブなデータベースには、読み取りレイテンシが150〜250ミリ秒、書き込みレイテンシが150〜450ミリ秒
というものはほとんどありませんでした。SANに何か問題がある別の兆候
3)特定のタイミングはなかった
その間に「SQL Serverで発生が発生しました...」というメッセージが
表示されたこれらのメッセージがログに記録されたときに、メンテナンスまたはディスクの重いETLが実行されていませんでした
4)Windowsイベントビューアー
「SQL Serverで発生が発生しました...」を除き、問題を示唆する他のエントリを表示しませんでした
5)上位10個のクエリのチェックを開始しました
sp_BlitzCache(cpu、readsなど)から、可能な限り最適化する
大量のデータを大量に蓄積し、ストレージに大きな影響を与えるスーパーI / Oの重いクエリはありませんが
、データベースのインデックス作成は問題ありません。
6)SANチームはありません
SANへのネットワークパスを支援するシステム管理者は1人だけです。マルチパスであり、3台のサーバーのそれぞれに2本のネットワークケーブルがあり、スイッチとSANに接続され、1ギガバイト/秒と想定されています
7)CrystalDiskMarkの結果はありませんでした
または、サーバーがセットアップされたときのその他のベンチマークテストの結果、速度がどうあるべきかがわかりません。この時点でベンチマークを実行して、現在の速度を確認することはできません。
8)問題のデータベースのチェックポイントイベントで拡張イベントセッションをセットアップする
XEセッションは、「SQL Serverで発生が発生しました...」メッセージ中に、チェックポイントが非常に遅い(最大90秒)ことを発見するのに役立ちました
9)SQL Serverエラーログ
含まれる「FlushCache」「Saturation」エントリ
これらは、特定のデータベースのチェックポイント時間がリカバリ間隔設定を超えたときに表示されるはずです
詳細は、チェックポイントがフラッシュしようとしているデータの量が少なく、完了するまでに長い時間がかかり、全体の速度が約0.25 MB /秒であることを示しました...奇妙な
10)最後に、この写真はストレージのトラブルシューティングチャートを示しています。
「ハードウェアの問題:-システム管理者/ハードウェアベンダーと協力して、SAN、古い/障害のあるドライバー、コントローラー、ファームウェアなどの設定ミスを修正する」だけのようです。
別の質問「Slow checkpoint ...」では、フラッシュストレージでの遅いチェックポイントと15秒のI / O警告
、トラブルシューティングのためにハードウェアレベルとソフトウェアレベルでチェックする必要がある項目の非常に良いリストがありました。
私たちのシステム管理者はリストからすべてのものをチェックできなかったので、この問題でいくつかのハードウェアを投げることを選択しました-それはまったく高価ではありませんでした
解決:
1 TB SSDドライブを注文し、サーバーに直接インストールしました
可用性グループがあるため、セカンダリレプリカでSANからSSDにDBデータファイルを移行してから、フェールオーバーし、以前のプライマリでファイルを移行しましたこれにより、合計ダウンタイムを最小限に抑えることができました-1分未満
現在、各サーバーにはDBデータのローカルコピーが
あり、前述のSANに対して完全/差分/ログバックアップが行われます。Windowsイベントビューアーログの「SQL Serverで発生が発生しました...」メッセージ、バックアップのパフォーマンス、整合性チェック、インデックスの再構築、クエリなどが大幅に増加しました
DBファイルをSSDに移行してから、IOレイテンシの面でどの程度パフォーマンスが向上しましたか?
影響を評価するために、移行の2週間前と移行の4週間後にパフォーマンスWindowsパフォーマンスモニターログを使用しました。
また、以下はDBレベルのレイテンシ統計の比較です(SQL Serverのキャプチャされた仮想ファイルの統計を移行前後に使用)
概要
SANから直接接続されたローカルSSDへの移行は価値がありました
それました。ストレージのレイテンシに大きな影響を与え、平均で特に90%以上改善されました(特にWRITE操作)。
ローカルSSDに移行することで、ストレージパフォーマンスの問題だけでなく、懸念していたデータの安全性も解決しました(SANに障害が発生した場合、3つのサーバーすべてが同時にデータを失います)