SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

SQL Server in Windows Azure のドキュメント (2013/8 版)

leave a comment

Performance Considerations for SQL Server in Windows Azure Virtual MachinesSQL Server を Windows Azure で動作させる際の現状のベストプラクティスのドキュメントを少し探してみました。

Windows Azure 上で SQL Server を動作させる際の情報は以前は、以下の記事にまとまっていました。
Best Practices for Running SQL Server in Windows Azure Virtual Machine (Retired)

こちらの情報ですが、Retired となっているように過去の情報となっています。

最新の情報については、SQL Server in Windows Azure Virtual Machines にまとまっています。
このドキュメントに記載されている以下のドキュメントが使用する前に目を通しておいたほうがよいドキュメントかと思います。
# How It Works: The I/O Path: SQL Server Running in Windows Azure Virtual Machine (IaaS) も 6 月の情報なのでこちらも目を通しておくとよいかもしれないですね。

Windows Azure で SQL Server を動作させる際のベストプラクティスとして、当初は永続化されないがレスポンスが良い D ドライブに tempdb を配置することが推奨されていましたが、現在は D ドライブへの配置が推奨されていなかったりします。

その理由としては以下のような記載があります。

The temporary storage drive, labeled as the D: drive is not persisted and is not saved in the Windows Azure Blob storage. It is used primarily for the page file and its performance is not guaranteed to be predictable. Management tasks such as a change to the virtual machine size, resets the D: drive. In addition, Windows Azure erases the data on the temporary storage drive when a virtual machine fails over. The D: drive is not recommended for storing any user or system database files, including tempdb.

現在のベストプラクティスとしては、安定したディスクのパフォーマンスが想定できる D ドライブ以外に tempdb を含めたデータファイルを配置することが推奨されています。
# Word のドキュメントでは、管理者権限がなくても配置できるドライブということで、D ドライブ以外への配置が推奨されているようですが。

また、現状は、Azure VM では読み取りキャッシュを有効にした状態のディスクは最大で 4 になっています。
このキャッシュをどのように使用するかの考え方についても記載がされいます。

・ If the workload demands a high rate of random I/Os (such as a SQL Server OLTP workload) and throughput is important to you, the general guideline is to keep the cache set to the default value of “None” (disabled). Because Windows Azure storage is capable of more IOPS than a direct attached storage disk, this setting causes the physical host local disks to be bypassed, therefore providing the highest I/O rate.

・ If the workload is sensitive to latency and requires low number of concurrent read I/Os, consider enabling read cache on the data disk.

読み取りの遅延が重要になってくる場合は読み取りのキャッシュを有効にするという記載があります。
SQL Server ではファイルグループを分けることにより、

  • 読み取りキャッシュが有効になっているファイルグループ
  • 読み取りキャッシュが無効になっているファイルグループ

に分けることができます。

読み取りのワークロードが重要になっていくるテーブルに対しては読み取りのキャッシュが有効になったディスクを使用したファイルグループ、そうでない場合は読み取りのキャッシュを無効にしたディスクに配置するとうの物理設計をとる必要が出てきます。
# SQL Server のデータベースを構成するディスクについては書き込みキャッシュは無効にして使用します。

Word のドキュメントでは、4 / 8 / 16 のファイルで IOPS を計測した情報なども書かれていますので、パフォーマンスの指針になるかと思います。
# この辺は和牛インスタンス (A7) を使って私も調べようと思って環境を準備している最中だったりします。

Azure 上で動作させるだけでなく、オンプレミスでも有効な情報がありますのでこの辺は SQL Server を使うに際して目を通しておくとよいドキュメントとなりそうですね。

Share

Written by Masayuki.Ozawa

8月 17th, 2013 at 10:27 pm

Leave a Reply