Azure SQL Databaseの適切な価格レベル(DTU)を選択する指標について

 

Microsoft SQL Server/Microsoft Azure SQL Database サポート

田中 真人

皆さん、こんにちは。 Microsoft SQL Server/Microsoft Azure SQL Database サポートチーム です。 日ごろから、Azure サービスをご愛顧頂き誠にありがとうございます。

今回は、日々のサポート業務において、比較的お問合せをいただくSQL Database の適切な価格レベル(DTU)を選択する指標について記載致します。

 

初めに、DTUとは何かについて記載します。既に DTU についてご存知の方は「2)適切なDTUを選択する指標」へ飛んで下さい。

 

+++++++++++++++++++++++++++++++++++++++++++

1 )DTUとは

+++++++++++++++++++++++++++++++++++++++++++

DTUとは、SQL Database のデータベースの処理性能を表す単位であり、SQL Databaseにおける各サービスレベルの性能を表す為の指標の1つです。

DTUはベンチマークテストにより、弊社が独自で決めており、具体的には、各サービスレベルのCPU、メモリ、およびディスクの読み書きを組み合わせた測定に基づいて算出しております。

DTUの概要の詳細は以下サイトをご確認ください。

 

■SQL Database のオプションとパフォーマンス: 各サービス階層で使用できる内容について理解します

https://azure.microsoft.com/ja-jp/documentation/articles/sql-database-service-tiers/

--サイト内抜粋 ここから—

DTU について

データベース トランザクション ユニット (DTU) は、データベースのトランザクションという実際の測定に基づいたデータベースの相対的な能力を表す SQL Database の測定単位です。

ここでは、完全搭載条件で、オンライン トランザクション処理 (OLTP) 要求に一般的な一連の操作を実行し、1 秒間に完了可能なトランザクション数を測定しました (詳細については、「ベンチマークの概要」を参照してください)。

たとえば、DTU が 1750 である Premium P11 データベースは、DTU が 5 である Basic データベースと比べ、DTU 換算で 350 倍の計算能力を持ちます。

--サイト内抜粋 ここまで--

 

また、SQL Databaseのベンチマークテストの概要は以下サイトをご確認くださだい。

 

■Azure SQL Database ベンチマークの概要

https://azure.microsoft.com/ja-jp/documentation/articles/sql-database-benchmark-overview/

 

 

+++++++++++++++++++++++++++++++++++++++++++

2 )適切なDTUを選択する指標

+++++++++++++++++++++++++++++++++++++++++++

適切な価格レベル(DTU)を選択する方法につきまして、以下3つの観点から記載します。

 

-----------------------------------------------------------------------------------------------------

2-1)新規でSQL Databaseをデプロイした際に、適切な価格レベル(DTU)を選択する指標

2-2)オンプレミスの環境から、SQL Databaseへ移行する際の、適切な価格レベル(DTU)を選択する指標

2-3) 既存のSQL Databaseのリソース不足や、取り扱うデータの量が増える見込みがある際の、適切な価格レベル(DTU)を選択する指標

-----------------------------------------------------------------------------------------------------

 

2-1)新規でSQL Databaseをデプロイした時に、適切な価格レベル(DTU)を選択する指標

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

SQL Databaseのデータベースを新規で作成する際の適切な価格レベル(DTU)を選択する指標につきまして、以下サイトに詳細な記載があります。

まずは、以下の情報を参照し、用途に合ったサービスレベルをご検討下さい。

 

■Azure SQL Database で利用可能なパフォーマンスオプション

https://azure.microsoft.com/ja-jp/documentation/articles/sql-database-service-tiers/

[サービス階層の選択] の項目をご確認下さい。

--サイト内抜粋 ここから--

Basic 小規模なデータベースに最適です。通常は、一度に 1 つのアクティブな操作をサポートします。たとえば、開発やテスト、使用頻度の低い小規模なアプリケーションなどに使用するデータベースがこれに該当します。

Standard IO パフォーマンス要件が低~中程度のクラウド アプリケーションに適しています。複数の同時クエリをサポートします。たとえば、ワークグループや Web アプリケーションなどです。

Premium IO パフォーマンス要件が高く、トランザクション量が膨大な場合に合わせて設計されています。多数の同時ユーザーをサポートしています。たとえば、ミッション クリティカルなアプリケーションをサポートするデータベースなどです。

Premium RS 最高レベルの可用性の保証を必要としない I/O 集中型のワークロード向けに設計されています。例としては、高パフォーマンス ワークロードまたはデータベースがレコードのシステムではない分析ワークロードのテストが含まれます。

--サイト内抜粋 ここまで--

 

次にサイト内の [単一データベース サービス階層とパフォーマンス レベル] の項目より、「最大データベースサイズ」や「最大同時ログイン数」を確認し、利用用途に合わせたパフォーマンスレベルを選択します。

例えば、Standard S0の場合、最大データベースサイズが250GB、一度にログイン可能な数が60となっております。

これらの制限をを超えるような利用を想定されている場合は、利用用件を満たす上位のレベルで作成する必要があります。

 

サービスレベルやパフォーマンスレベルは、都度変更が可能であるため、上記を指標として、検証環境にて一度作成、検証して頂き、DTU使用率を確認しながら、最適な価格レベル(DTU)を選択して下さい。

選択した価格レベル(DTU)のDTU使用率が100パーセントに近ければ上位の価格レベル(DTU)を選択、逆に低ければ下位の価格レベル(DTU)を選択することを検討してください。

 

DTU使用率の確認方法は、Azure ポータル上から該当のデータベースを選択し、[概要] をクリックします。

概要欄にデフォルトでリソース使用率の表記があります。リソース使用率=DTU使用率です。

 

※状況によっては、[リソース使用率] の部分がDTU percentageに変更される可能性がありますが、以下の画面キャプチャで0パーセントとなっているDTU percentageの箇所を確認します。

clip_image001

 

 

2-2)オンプレミスの環境から、SQL Databaseへ移行する際の、価格レベル(DTU)を選択する指標

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

オンプレミスのSQL ServerからSQL Databaseへ移行する際に、選択する適正な価格レベル(DTU)の指標は、以下サイト内に記載の「Azure SQL Database DTU Calculator 」で確認することが出来ます。

ただし、あくまで指標となるので、十分に検証した後、本番環境にて移行の実施を検討して下さい。

 

■Azure SQL Database DTU Calculator

https://dtucalculator.azurewebsites.net/

 

[Azure SQL Database DTU Calculatorのご利用方法]

a)オンプレミスの環境から、パフォーマンスモニターで、以下パフォーマンスカウンターのパフォーマンスログを取得します。パフォーマンログの取得方法は以下に記載します。

 •Processor - % Processor Time

 •Logical Disk - Disk Reads/sec

 •Logical Disk - Disk Writes/sec

 •Database - Log Bytes Flushed/sec

 

[パフォーマンスカウンターの取得方法] ※パフォーマンスログは1時間の取得をお願い致します。

1)  [コントロール パネル] - [管理ツール] - [パフォーマンスモニター] を起動します。

2) 左ペインの [データコレクタセット] を展開します。

3) [ユーザー定義] を右クリックし、[新規作成] -> [データコレクタセット] を選択します。

4) 名前を指定し、[手動で作成する]を選択した上、[次へ] を押します。

5) [データログを作成する] + [パフォーマンスカウンター] を選択し、[次へ] を押します。

6) 追加を選択します。

7) 以下のパフォーマンスカウンタを追加します。

  •Processor - % Processor Time

  •Logical Disk - Disk Reads/sec

  •Logical Disk - Disk Writes/sec

  •Database - Log Bytes Flushed/sec

 

8) 全てのカウンタを追加した事を確認し、[OK] を押します。

9) サンプルの間隔を 3秒へ設定し、[次へ]を押します。

10) 「ルートディレクトリ」にデータの保存場所を選択し、[次へ] を選択します。

11) [保存して閉じる] を選択し [完了] を押します。

12) 左ペインの [データコレクタセット] -> [ユーザー定義] に作成したデータコレクタセットが表示されます。右クリックから、開始を選択することでカウンタの採取が開始します。

 

※ 右クリックから、停止を選択することでカウンタの採取が停止します。パフォーマンスログは1時間の取得をお願い致します。(開始から1時間後に停止)

 

13) 10) で指定されたフォルダにパーフォーマンスログファイルが作成されている事を確認してください。

 

b)取得したパフォーマンスログをCSV形式へ変換します。CSV形式へ変換する方法は以下に記載します。

1)コマンドプロンプトを開き、以下コマンドを実行します。

 

C:\>relog "既存のパフォーマンスログのフルパス" -o 任意の出力先のフルパス.csv -f CSV

 

例)C:\temp 配下に変換したいパフォーマンスログファイルを配置した場合。

 

C:\>relog "C:\temp\DataCollector01.blg" -o C:\temp\DataCollector01.csv -f CSV

 

■Relog

https://technet.microsoft.com/ja-jp/library/cc771669(v=ws.10).aspx

 

2)任意の出力先に、CSV形式のパフォーマンスログファイルが作成されている事を確認してください。

 

c)上記に記載の「Azure SQL Database DTU Calculator」のサイト内の以下画面キャプチャの欄に、移行元マシンのコア数を入力し、File Uploadの参照ボタンからCSV形式に変換したパフォーマンスログファイルを選択し、「Calculate」ボタンを押下します。

clip_image003

 

d)以下の画面キャプチャのように結果が得られます。この例では、Premium-P1が適正であるという結果が出ています。

clip_image005

 

上記の例の場合、検証環境にてSQL DatabaseをPremium-P1にてデプロイし、実際に運用し、DTU使用率を確認しながら、適切な価格レベル(DTU)を選択してください。

 

 

2-3)既存のSQL Databaseのリソース不足や、取り扱うデータの量が増える見込みがある際の、適切な価格レベル(DTU)を選択する指標

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  

-リソース不足により価格レベル(DTU)の変更が必要なケースにおける適切な価格レベル(DTU)を選択する指標

既存のSQL DatabaseのデータベースのDTU使用率を確認し、100%付近まで達している場合、リソース不足の可能性があります。その場合、まずはひとつ上の価格レベル(DTU)へ変更し、再度DTU使用率を確認します。

適切なDTU使用率は、利用する環境に依存します。例えば、リソース不足によるアプリケーションの停止が一瞬でも発生すると重大な影響を及ぼす場合は、一瞬でもDTU使用率が100%を超えない価格レベル(DTU)を選択する必要があり、

これを明確にするためには、検証環境などで、実際に運用して確かめる必要があります。

 

-既存の環境ではリソース不足は発生していないが、今後取り扱うデータ量などが増え、価格レベル(DTU)の変更が必要なケースにおける適切な 価格レベル(DTU)を選択する指標

既存の環境で取り扱っているご利用方法(データ量など)と、既存の環境のDTU使用率がそのまま指標となります。

例えば、DTUが10(S0)の環境で、DTU使用率が50%の環境のサービスレベルを、DTUが倍の20(S1)のサービスレベルへ変更した場合、利用方法(データ量など)に変更がなければ、DTU使用率は25%になる見込みです。

上記を踏まえて、検証環境にて実際に運用し、適切な価格レベルを選択します。

 

運用している既存のSQL Databaseのデータベースがある場合は、検証環境にて、価格レベル(DTU)を変更しながら適切な価格レベル(DTU)を選択する事が最適な方法となります。

これは、SQL Databaseの強みの一つです。オンプレミスの環境で検証する為には、想定する範囲のCPUやメモリなどのハードを準備するコストがかかります。

SQL Databaseでは、価格レベル(DTU)を変更する事により、分単位で検証環境を構築、解体、構築を繰り返し実施する事ができます。

 

 

≪参考情報≫

Azure サービスを、検証などの為に無料で利用する方法につきまして以下に記載致します。

 

以下サイト内の「無料で始める」より無料アカウントを作成し、20,500円までAzure サービスを利用できます。

 

■無料の Azure アカウントを今すぐ作成しましょう

https://azure.microsoft.com/ja-jp/free/

 

有料サービスに切り替える操作をしない限りご料金は発生しません。

 

■Azure 無料アカウント FAQ

https://azure.microsoft.com/ja-jp/free/free-account-faq/

--サイト内抜粋--

無料アカウントで料金は発生しますか?

いいえ。このアカウントは無料です。さらに、最初の 30 日間利用できる \20,500 クレジットも提供いたします。

30 日経過した後は料金が発生しますか?

いいえ。従量課金制の Azure サブスクリプションの有料サービスに移行しない限り、料金は発生しません。Azure サブスクリプションはいつでもキャンセルすることができます。移行後であっても、無料レベルを提供する多くの Azure サービスを、料金なしで引き続きご利用いただけます。

--ここまで--

 

以上となります。ご参考になれば幸いでございます。今後のとも弊社サポート窓口をどうぞ宜しくお願い致します。