SQL Database の DTU (Database Throughput Unit )について

いろいろと誤解を生む可能性がある DTU (Database Throughput Unit)について、私の理解を書いておきます。

様々な機能が次々とリリースされている Microsoft Azure ですが、先日、SQL Database の新しいサービス階層のプレビューが始まりました。この新しいサービス階層の中で定義されたのが、DTU ( Database Throughtput Unit )です。この DTU ですが、その名の通り単位になっており、オンラインマニュアルには 5 DTU は1DTUの5倍のパフォーマンス レベル です、という記載もあります。

Database Throughput Unit (DTU): The resources powering each performance level are represented in DTUs. It combines CPU, memory, physical reads, and transaction log writes into a single unit. A performance level with 5 DTUs has five times more power than a performance level with 1 DTU.

では、このDTU。「値が5倍になる」と「パフォーマンスが5倍になる」のでしょうか。

この質問への答えは、ワークロードによって異なる結果が得られます、になります。

上記を引用した オンラインマニュアル を注意深く読んでいただく必要があるのですが、DTU はAzure SQL Database Benchmark (ASDB) というベンチマークの結果に基づいたパフォーマンス レベルの指標値であり、パフォーマンスそのものを定義するものではありません。サービスとしてご利用いただくにあたって、機器のカタログ スペックを実際に得られるパフォーマンスのレベルに置き換えた値といってもよいかもしれません。例えば、 Basic の場合は1CPU、1GBメモリ、500IOPS、Standard S1の場合は2CPU、4GBメモリ、1000IOPS (左記は説明のための適当な値です。実際のリソース量とは異なります)のように、具体的に割り当てられているリソースは決まっており、これらをそのまま表記するのではなく、ASDB によるベンチマークの結果からトランザクション レートを計算し、Basic の5トランザクション/秒というパフォーマンスを 1DTU、Standard S1はおよそ5倍の28トランザクション/秒のパフォーマンスであったために5DTU、というように表現されています。

このように、ベンチマークの結果から定義しているため、実際のリソースは DTU のように5倍、25倍と割り当て量が増えている訳ではありません。これが「パフォーマンスが5倍にならない」の理由です。

ここまで書くと、どう選べばよいのでしょうか?という疑問も出てくるかもしれませんが、そこはクラウドらしく様子を見ながら徐々にスケールアップしていくのがよいと思っています。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中