dtu

テーマ:

◆ DTU の考え方/ボトルネックの確認方法

(2015年1月時点での情報) 

前述したように、Azure SQL Database では、DTU という単位で、パフォーマンス レベルが決定しています。

00242

Basic や S0 は、価格が安い分、大きな制限を受けるエディションになっているので、簡単に CPU 利用率が 100% を使い切っている状態になったりします。

例えば、次のようにクエリを実行すると、CPU 負荷を高くすることができます(Basic エディションを利用している場合は、実行に 6分ぐらいかかります)。

DECLARE @i int = 1
WHILE @i <= 1000
BEGIN
      DECLARE @kekka float
      SELECT @kekka RAND(aFROM t1 ORDER BY NEWID()
      SET @i += 1
END

このときの状況を dm_db_resource_stats 動的管理ビューで確認すると、次のようになります。

00243

この結果は、Basic エディションの場合のもので、avg_cpu_percent(15秒間の平均 CPU 利用率)が 100% を使い切っている状態であることを確認できます。

このように、100%近辺を推移している(リソースを使い切っている)ということは、エディション/パフォーマンス レベルを上位のものに変更すれば、性能を上げられる可能性がある、ということを意味しています。

なお、動的管理ビューの結果は、次のようにグラフで確認することもできます。

00244

CPU percentage 最大が 100%なので、DTU PERCENTAGE も 100%と表示される形になっています。DTU PERCENTAGE は、CPU、ディスクI/O、Log Write(Log I/O)のうち、いずれかの最大値を表示しているだけになります(3つのうち、どれかが高い値を示している、ということを知るための情報になっています)。

同じクエリを Standard エディションの S1 で実行した場合は、次のようになります。

00245