sql >> データベース >  >> RDS >> Database

Windows Azure VMのパフォーマンスの比較、パート1

    それを無視するために一丸となって努力していない限り、Microsoftが本当に たとえば、SQL Serverデータベースインフラストラクチャの大部分をMicrosoftデータセンターに移動する場合は、Azure SQLデータベース(最近ここで説明しました)に移動する場合でも、WindowsAzure仮想マシンでホストする場合でも同様です。 Microsoftは、これらの永続仮想マシンをコンピューティングインスタンスと呼んでいます。 、および基本コンピューティング層と標準コンピューティング層を含む2つの主要な層から選択できます。彼らはこれらの2つの層を次のように説明しています:

    基本的なコンピューティング層 :コンピューティングインスタンスのこの新しい層は、構成が標準層と似ていますが、価格が低くなっています。これらのインスタンスには、ロードバランサーと自動スケーリングは含まれていません。これらは、これらの機能を必要としない可能性のある単一インスタンスの本番アプリケーション、開発ワークロード、テストサーバー、およびバッチ処理アプリケーションに最適です。基本的な計算層は現在、汎用インスタンスでのみ使用できます。これらのインスタンスの範囲は、BasicA0からBasicA4です。

    標準コンピューティング層 :コンピューティングインスタンスのこの層は、さまざまなアプリケーションを実行するためのコンピューティング、メモリ、およびI/Oリソースの最適なセットを提供します。これらのインスタンスには、追加コストなしで自動スケーリングと負荷分散の両方の機能が含まれています。標準のコンピューティング層は、汎用、メモリ集約型、およびコンピューティング集約型のインスタンスで利用できます。これらのインスタンスの範囲は、標準A0から標準A7です。

    SQLServerインフラストラクチャをWindowsAzure仮想マシンでホストすることにはいくつかの重要な利点があります。まず、ストレージまたはハードウェアの継続的なメンテナンスがなく、ストレージまたはハードウェアの資本コストがありません。次に、OSまたはSQL Serverのライセンスコストがありません(標準のAzure VMギャラリーのSQLイメージを使用する場合)。第3に、SQLServerが既にインストールされている新しいAzureVMを数分で作成できます(OSとSQL Serverインスタンスを正確な要件に完全に構​​成するには少し時間がかかる場合があります)。今後も、WindowsとSQL Serverの更新をインストールするのはあなた次第ですが、ファームウェア、BIOS、ドライバーの更新などについて心配する必要はありません。

    WindowsAzure仮想マシンを使用してSQLServerインフラストラクチャのすべてまたは一部をホストする場合は、仮想マシンをホストする特定のAzureデータセンターで利用できる現在の価格の詳細に注意する必要があります。 Microsoftデータセンターによって異なります。 Microsoftには、現在13種類のWindows Azure仮想マシンのサイズがあります。詳細については、「Azureの仮想マシンとクラウドサービスのサイズ」ページを参照してください。マイクロソフトは、2014年5月1日に、ほとんどのデータセンターでメモリを大量に消費するインスタンス(標準A5、標準A6、および標準A7)の1時間あたりの料金を18%引き下げました。表1に示す料金は、これらの新しい低価格を反映しています。

    表1の右側の2列のシングルコアスコアとマルチコアスコアは、サンプルのWindows Server2012R2データセンターで32ビットバージョンのGeekbench3.05プロセッサとメモリベンチマークを使用して観察した平均スコアです。米国東部のデータセンターのVM。これらのスコアは、表示される内容を表す場合とそうでない場合があります。

    VMサイズ CPUコア メモリ(GB) 時間コスト 月額費用 シングルコアスコア マルチコアスコア
    基本A0 1(共有) 0.75 $ 0.018 〜$ 14 507 498
    基本A1 1 1.75 $ 0.074 〜$ 56 679 670
    ベーシックA2 2 3.50 $ 0.148 〜$ 111 709 1,358
    ベーシックA3 4 7.00 $ 0.296 〜$ 221 717 2,472
    ベーシックA4 8 14.00 $ 0.592 〜$ 441 724 4,042
    標準A0 1(共有) 0.75 $ 0.020 〜$ 15 492 502
    標準A1 1 1.75 $ 0.090 〜$ 67 1,068 1,083
    標準A2 2 3.50 $ 0.180 〜$ 134 1,069 2,002
    標準A3 4 7.00 $ 0.360 〜$ 268 1,070 3,593
    標準A4 8 14.00 $ 0.720 〜$ 536 1,094 6,446
    標準A5 2 14.00 $ 0.330 〜$ 246 1,080 2,026
    標準A6 4 28.00 $ 0.660 〜$ 492 1,080 3,686
    標準A7 8 56.00 $ 1.320 〜$ 983 1,056 6,185

    表1:米国東部のデータセンターにおけるWindowsAzureの選択された仮想マシンの仕様

    現在、マイクロソフトには、新しい永続的な仮想マシンをホストできる9つのデータセンターがあります。これには、米国東部、米国西部、ブラジル南部(プレビュー)、北ヨーロッパ、西ヨーロッパ、東アジア、東南アジア、日本西部、日本東部が含まれます。 Microsoftによると、「A1は本番ワークロードに推奨される最小サイズ」であり、「SQL Server Enterprise Editionを使用する場合は、4つまたは8つのCPUコアを備えた仮想マシン」を選択する必要があります。 WindowsAzure仮想マシンでSQLServerを実行するための、多少古いリファレンスの1つは、2013年6月に公開されたWindowsAzure仮想マシンでのSQLServerのパフォーマンスガイダンスです。

    WindowsAzure仮想マシンの特性

    Windows Server 2012 R2タスクマネージャーの[パフォーマンス]タブのCPUプロパティ(図1および図2)を見ると、比較的古い45nm AMD Opteron4171HEプロセッサーを使用していることが報告されています。 2.1GHzの速度。この特定の6コアプロセッサは、2ソケットのリスボンファミリの一部として2010年6月に導入されました。 HE接尾辞は、「低電力」のエネルギー効率の高いモデルであることを意味します。これは、比較的少量のエネルギー使用量の削減でかなりのパフォーマンスを放棄するため、SQLServerの使用には適していません。掘り下げてみたところ、このプロセッサはMicrosoftデータセンター向けの特別なOEMプロセッサであると言われました。


    図1:米国東部のデータにおける基本的なA0仮想マシンセンター


    図2:米国東部のデータにおける標準のA7仮想マシンセンター

    このプロセッサのもう1つの大きな問題は、その古さと比較的貧弱なシングルスレッドのパフォーマンスに加えて、物理コアが6つしかないという事実です。これは、2つのNUMAノードと合計8つの物理コアを持つBasic A4、Standard A4、およびStandardA7VMサイズの問題です。これは、そのサイズのVMが基盤となる物理ホスト上のNUMAノードを通過することを意味します。これは、メモリパフォーマンスの良いアイデアではありません。私はマイクロソフトがこれを故意に行うとは信じがたい。また、これまでに試したすべてのデータセンターのすべてのAzure VMが、まったく同じ古いAMDプロセッサを使用しているとは信じられません。 MicrosoftがこれまでにAzureデータセンターで使用してきたハードウェアの少なくとも3つの異なる世代(Gen 1、Gen 2、およびGen 3)を持ち、異なるVMパフォーマンスを提供していることはかなり一般的な知識です。さらに問い合わせたところ、このAMD Opteron4171HEプロセッサがAzureGen2プロセッサであることがわかりました。

    アップロードされたベンチマーク結果のGeekbench3オンラインデータベースを参照して、AMD Opteron4171HEプロセッサを使用するシステムをここで探すことができます。このプロセッサのすべての結果がMicrosoftVirtualMachineのものであるように見えることに気付くかもしれませんが、これも非常に興味深いものです。 Windows Server 2012 R2タスクマネージャーは、L1キャッシュを「N / A」として報告し、これらのAzureVMのL2およびL3キャッシュサイズを一覧表示していません。もう1つの興味深い証拠は、シングルコアスコアとマルチコアの両方で、標準インスタンスの合計プロセッサコア数とメモリサイズがまったく同じである場合、標準インスタンスのGeekbench 3スコアが同等の基本インスタンスよりも約50%高いという事実です。スコア。基盤となるホストマシンが実際に同じプロセッサを使用している場合、この大きな差異は意味がありません。

    概要

    このすべての証拠から、最初は、Microsoftがホストマシンの実際のプロセッサを覆い隠していた可能性があるという結論に至りました。新しい、より高速なホストハードウェアでVMが実行されるまで、人々が意図的に複数のVMをプロビジョニングするのを防ぐために、これを行っているのではないかと思いました。マイクロソフトはそれほど賢くないことがわかりました。 MicrosoftはAzureVMのCPUのIDを変更しないと確信しています。将来新しいVMをプロビジョニングするときに、AzureVMに組み込まれる可能性のある新しいAzureGen3プロセッサがあります。私の結果のもう1つの考えられる理由は、基盤となるホストハードウェアに関係なく、VMのパフォーマンスを信頼できる均一なレベルに制限するために何らかのガバナンスを使用している可能性が高いため、時間の経過とともにより少ないハードウェアでより多くのVMをホストできることです。これは、IaaSホスティング業者にとって賢明な行動です。

    最大のAzureVMでもGeekbench3.05スコアが比較的低い(図3を参照)ということは、同じ数のプロセッサコアとメモリを備えた同等の物理2ソケットサーバーと比較して、かなりの量のプロセッサとメモリのパフォーマンスを放棄していることを意味します。


    図3:標準の32ビットGeekbench3.05の結果米国東部のデータセンターにあるA4仮想マシン

    多くのSQLServerワークロードは、これまでより少し遅くなりますが、このレベルのVMパフォーマンスで完全に実行されます。 8コアマシンによるSQLServer2014 Enterprise Editionライセンスの節約に加えて、適度な2ソケットサーバーとそれに関連するストレージの設備投資を考慮に入れると、標準のA7仮想マシンを24時間365日稼働させることができます。 5〜6年。この種のROIを考えると、多くの組織がSQLServerインフラストラクチャの少なくとも一部をAzure仮想マシンに移行するという経済的決定を下していることがわかります。ワークロードが56GB以下のVMで実行でき、一般的な最近のビンテージラップトップよりもCPUとメモリのパフォーマンスが低いことが許容される限り、これは合理的な行動です。マイクロソフトは最近、IntelXeonE5-2670プロセッサを使用するより大きくてはるかに高速なA8およびA9VMコンピューティングインテンシブインスタンスの可用性を発表しました。これにより、AzureGen2プロセッサよりもパフォーマンスが大幅に向上します。

    今後の記事で、Azure仮想マシンのI/Oパフォーマンスを確認します。


    1. SQL Serverで「smalldatetime」を「datetime2」に変換します(T-SQLの例)

    2. サーバーとの接続は正常に確立されましたが、ログイン前のハンドシェイク中にエラーが発生しました

    3. sp_prepare/sp_prepexecのユースケース

    4. テーブルの作成中にエラーが発生しました:1行目の'order(order_id INT UNSIGNED NOT NULL AUTO_INCREMENT、user_id'の近くのSQL構文にエラーがあります