適用対象: SQL Server
この記事では、物理セクター のサイズがディスク ドライブ間で異なる場合に、SQL Server での I/O 操作の不整合によるパフォーマンスの低下を解決する方法について説明します。
概要
SQL Server では、ディスク ドライブの物理セクター サイズがサーバーまたはストレージ システムによって異なる場合に、I/O 操作がずれる可能性があります。 この状態はパフォーマンスを低下させる可能性があり、次のようなセクター サイズの不一致が明らかになっている環境では特に一般的です。
- ストレージがアタッチされた仮想マシン
- Always On 可用性グループ
- ログ配布
- ハードウェアの移行
たとえば、プライマリ サーバーが 4 KB のセクター サイズを使用し、セカンダリ サーバーが 512 バイトを使用する場合に、一般的な問題が発生します。 この問題により、ログ同期または復元プロセス中に I/O 操作が正しく配置されません。 このずれにより、復元の速度低下や同期の遅延など、パフォーマンスが低下する可能性があります。
トレース フラグ 1800 は、基になるディスクの物理セクター サイズに関係なく、SQL Server がトランザクション ログ I/O 操作に一貫した 4 KB セクター サイズを使用することを保証します。 このトレース フラグは、異なるストレージ仕様でサーバーがアップグレードまたはハードウェアに移行された可能性がある混合環境でパフォーマンスを維持するように設計されています。
書き込み負荷の高いワークロードを使用するデータベースの場合、I/O 操作を調整するとパフォーマンスが大幅に向上しますが、読み取り集中型環境では利点はごくわずかです。
現象
次のいずれかの現象が発生した場合、I/O 操作が正しく調整されていないことにより、SQL Server のパフォーマンスが低下する可能性があります。
同期または復元の時間が遅い: I/O 操作が不適切な場合、特に Always On 可用性グループやログ配布などの分散 SQL Server 環境では、同期または復元時間が遅くなる可能性があります。
SQL Server エラー ログのエラー メッセージ: I/O 操作に関連するエラー メッセージは、次のような不適切な問題を示している可能性があります。
There have been # misaligned log IOs which required falling back to synchronous IO.
書き込み集中型操作中のパフォーマンスのボトルネック: ログ バックアップやデータベースの復元などの書き込み集中型操作では、I/O 操作の位置がずれたためにディスク待機時間が長くなり、I/O 待機時間が長くなり、パフォーマンスのボトルネックや応答時間が遅くなる可能性があります。
セクター サイズを確認する
I/O 操作のずれを回避するには、ディスク ドライブの物理セクター サイズがすべてのサーバーと記憶域システムで一貫していることを確認することが重要です。
管理者特権のコマンド プロンプトで次のコマンドを実行するとsector のサイズを確認できます。
fsutil fsinfo sectorinfo <volume path name>
次のスクリーンショットは、E:
ドライブの fsutil fsinfo sectorinfo
コマンドの出力を示しています。セクター サイズは 8 KB ですが、物理セクター サイズは 4 KB で、I/O 操作の配置が間違っています。
Resolution
I/O 操作の位置がずれたためにパフォーマンスが低下し、セクター サイズを 変更できない場合グローバル スタートアップ パラメーターとして Trace Flag 1800 を使用して、SQL Server でトランザクション ログの I/O 操作に一貫した 4 KB のセクター サイズを使用するように強制できます。
トレース フラグ 1800 をスタートアップ パラメーターとして有効にするには、次の手順に従います。
SQL Server がインストールされているシステムで、SQL Server 構成マネージャーを開きます。
SQL Server 構成マネージャー (ローカル) を展開し、SQL Server Services を選択します。
構成する SQL Server インスタンスを右クリックし、 Properties を選択します:
SQL サーバーのプロパティで、Startup Parameters タブを選択し、[スタートアップ パラメーターの指定] フィールドに「
-T1800
」と入力し、[追加 を選択してパラメーターを一覧に追加します。トレース フラグがスタートアップ パラメーターの一覧に追加されたことを確認します。 OK を選択して変更を保存します。
インスタンスの起動時にトレース フラグを有効にするには、SQL Server サービスを再起動します。