SE の雑記

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

SQL Azure の NUMA ノード数を想像してみる

leave a comment

以前、SQL Azure のスケジューラー数と並列クエリについて という投稿をしました。
スケジューラー系で SQL Azure の NUMA ノード数がどうなっているのかが気になったので調べてみました。

■SQL Server 2008 R2 の NUMA ノード数について


SQL Server 2008 R2 の NUMA ノード数はログや DMV からも見れますが、サーバーのプロパティから確認するのが手っ取り早いかと思います。

以下の画像は Quad Core + HT 有効のサーバーのプロセッサの情報になります。
image

この環境は NumaNode 0 のみの環境となっています。
# Node id 0 は NUMA の有無にかかわらず必ず存在していたかと。

DMV で見る場合は、[sys.dm_os_schedulers] から確認することが可能です。
# [sys.dm_os_memory_clerks] からも見れると思います。
image

複数の NUMA ノードが存在している場合は以下のように表示がされます。
image

こちらはソフト NUMA で 4 CPU で 1 NUMA ノードとして設定したものになります。
parent_node_id が 0 / 1 で構成されており、NUMA ノードが 2 つあることが確認できます。

ソフト NUMA の場合、サーバーのプロパティから見た表示は設定前と変わりません。
image

複数の NUMA ノードが存在している場合はサーバーのプロパティでは以下のように表示されます。
下の画像は見かけ上、1 NUMA ノード 64 CPU × 4 ノード (256 CPU) として設定したものになります。
image

 

■SQL Azure の NUMA ノード数を調べてみる


それでは本題の SQL Azure の NUMA ノード数を調べてみたいと思います。

SQL Azure では、[sys.dm_os_schedulers] を使用することができません。
また、サーバーのプロパティを開くこともできません。
# プロパティが表示されないので。
image

それでは、どのようにして調べるかというと、[sys.dm_exec_connections]  の [node_affinity] を使えば調べられそうです。

先ほどの 4 NUMA ノード構成の環境で多数の接続をして上記の DMV を[node_affinity] でグルーピングしてみたいと思います。
image

接続が各 NUMA  ノードに分散しているのが確認できますね。

それでは、SQL Azure に対して同様の操作をしてみたいと思います。
# 接続セッション数は抑えています。
image

0 / 1 の 2 つのノードの情報が取得できているのが確認できます。

ここから考えると SQL Azure の NUMA ノードは 2 ノードの構成となっているようです。
スケジューラーの数が 8 でしたので以下のような構成になっているかもしれないですね。
image

Share

Written by Masayuki.Ozawa

6月 15th, 2011 at 10:56 pm

Leave a Reply