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

SQLServer2012のプロセッサの選択

    MicrosoftはSQLServer2012のライセンスモデルを刷新したため、SQL Server2012を実行するデータベースサーバーに使用するプロセッサを正確に決定する前に、慎重に分析することが特に重要です。SQLServerのコアベースのライセンスへの移行2012 Enterprise Editionは、実行するプロセッサを正確に決定する際に、多額の費用とパフォーマンスとスケーラビリティの両方がかかる可能性があることを意味します。 SQL Server 2012 Standard Editionにも同じ問題があります(程度は少ないですが)。

    多くの場合、適切なプロセッサの選択と不適切なプロセッサの選択のSQL Server 2012ライセンスコストの違いは、ハードウェアとストレージサブシステムに支払う以上の費用がかかる可能性があります。これを踏まえて、SQL Server 2012 Enterprise Editionに最適なプロセッサを選択するにはどうすればよいですか?通常、最初のステップは、IntelXeonプロセッサとAMDOpteronプロセッサのどちらを使用するかを決定することです(SQL Server2012はIntelItaniumプロセッサフ​​ァミリをサポートしていません)。

    残念ながら、SQL Server 2012EnterpriseEditionで使用するAMDOpteronプロセッサを選択するための優れた技術的またはビジネスケースを作成することは非常に困難です。 2008年から2010年にIntelNehalemアーキテクチャ(Intel Xeon 3500、5500、6500、および7500シリーズ)が導入されて以来、AMDはシングルスレッドプロセッサのパフォーマンスに関してIntelと競合することができませんでした。 AMDには、パフォーマンスや電力効率の点でIntelと競合するための財政的または技術的なリソースがありません。 Intelから新しいプロセッサフ​​ァミリがリリースされるたびに、AMDはさらに遅れをとっています。これはITにとって良いことではありません。 AMDとの実行可能な競争の欠如は、必然的にIntelのイノベーションのペースを遅くするためです。

    IntelXeonプロセッサがSQLServer2012の唯一の実行可能な選択肢であると思われるため、次のステップは、利用可能な多くのXeonファミリとモデルのどれが目的のSQLServer2012ワークロードに最適かを決定することです。 Intelには、ソケットカウントサーバーごとに異なるXeon製品ファミリがあります。シングルソケットワークステーションおよびサーバーの場合、IntelXeonE3ファミリがあります。 2ソケットのワークステーションとサーバーの場合、IntelXeonE5ファミリがあります。最後に、2ソケット、4ソケット、および8ソケット(またはそれ以上)のサーバーの場合、IntelXeonE7ファミリがあります。

    この記事ではSQLServer2012 Enterprise Editionについて説明しているため、Intel XeonE3プロセッサは32GBのDDR3RAMの使用に制限されているため、シングルソケットのIntelXeonE3ファミリは無視します。 SQL Server 2012EnterpriseEditionと組み合わせて32GBのRAMを搭載したシングルソケットサーバーでIntelXeonE3-1290V2プロセッサを使用することが非常に理にかなっているニッチなシナリオがいくつかあります。おそらく、データベースが比較的小さく、絶対最速のシングルスレッドパフォーマンスが必要であり、SQLServerAlwaysOn可用性グループなどの特定のEnterpriseEdition機能も必要です。

    より一般的な選択は、2ソケットサーバーと4ソケット(またはそれ以上)のサーバーの間です。ワークロードのサイズと強度を評価し、より小さくてもより高速な2ソケットサーバーで実行できるかどうか、またはより大きく、より低速な4ソケットまたはより大きなサーバーにジャンプする必要があるかどうかを判断する必要があります。この決定は、必要な合計CPU容量、合計物理RAM容量、および必要な合計I / O容量(サーバーのPCI-E拡張スロットの数とタイプに関連します)に直接影響されます。

    よくある誤解の1つは、Intelベースのサーバー(ソケット数の点で)が大きいほど高速なサーバーであるというものです。これは、いくつかの理由から、単に真実ではありません。 2ソケットサーバーの販売量と市場シェアは、4ソケット以上のサーバーよりもはるかに高くなっています。また、4ソケット対応のIntelプロセッサと比較して、2ソケット対応のIntelプロセッサに必要なエンジニアリングおよび検証作業が少なくて済みます。これらの要因により、Intelは、ソケット数の少ないサーバー向けに、新しいプロセッサアーキテクチャをより頻繁かつ早期にリリースします。現在、IntelのシングルソケットE3ファミリは22nm Ivy Bridgeを使用しており、2ソケットE5ファミリは32nm Sandy Bridge-EPを使用していますが、IntelE7ファミリは古い32nmWestmere-EXマイクロアーキテクチャを使用しています。

    もう1つの理由は、古い対称型マルチプロセッシング(SMP)アーキテクチャよりもはるかに優れたスケーリングを行うNon-uniform Memory Access(NUMA)アーキテクチャプロセッサを使用しても、ソケット数を増やしても線形スケーリングが得られないことです。つまり、4ソケットサーバーは、同じモデルのプロセッサを搭載した2ソケットサーバーの2倍のプロセッサパフォーマンスまたは容量を備えていません。

    これは、IntelXeonE7-2870プロセッサを搭載した2ソケットシステムとIntelXeonE7-4870プロセッサを搭載した4ソケットシステムとIntelXeonE7-8870プロセッサを搭載した8ソケットシステムのTPC-EOLTPベンチマーク結果を比較することで確認できます。これらは基本的に同じプロセッサであり、個々のパフォーマンス特性は同じですが、表1に示すように、ソケット数を2倍にしても、TPC-Eベンチマークスコアは2倍になりません。

    プロセッサ ソケット数 TPC-Eスコア 合計コア数 TPC-Eスコア/コア
    Xeon E7-2870

    2

    1560.70

    20

    78.04
    Xeon E7-4870

    4

    2862.61

    40

    71.57
    Xeon E7-8870

    8

    4614.22

    80

    57.68

    表1:ソケット数の増加に伴うTPC-Eスコアの比較

    シングルソケットと2ソケット、4ソケットと8ソケットのプロセッサを比較することを考えるとき、私は車とトラックの例えを使用するのが好きです。シングルソケットサーバーはF1レースカーのようなもので、非常に高速ですが、貨物容量はほとんどありません。 2ソケットサーバーはTeslaModelSのようなもので、非常に高速で、かなりまともな貨物容量を備えています。 4ソケットサーバーは大型SUVのようなもので、テスラモデルSよりも低速ですが、貨物容量が大きくなります。最後に、8ソケットサーバーはマックトラックのようなもので、 SUV。

    プロセッサ ソケット数 TPC-Eスコア 合計コア数 TPC-Eスコア/コア
    Xeon E5-2690

    2

    1881.76

    16

    117.61
    Xeon E5-4650

    4

    2651.27

    32

    82.85

    表2:2つのXeonE5プロセッサモデルのTPC-Eスコアの比較

    表1と表2を比較すると、TPC-EではIntelXeonE5ファミリの方がIntelXeonE7ファミリよりもかなり優れていることがわかります。これは、新しいSandyBridge-EPを古いWestmere-EXマイクロアーキテクチャ。パフォーマンスの観点から、2ソケットのXeon E5-2690は、2ソケットのXeonE7-2870よりもはるかに優れています。私の意見では、シングルスレッドのパフォーマンスが低く、物理コア数が多い(つまり、SQL Server 2012のライセンスコストが高い)ため、SQLServer2012に2ソケットのXeonE7-2870を使用するべきではありません。

    現在、私のお気に入りのIntelサーバープロセッサはIntelXeonE5-2690です。優れたシングルスレッドパフォーマンスと比較的手頃なSQLServer2012ライセンスコストを提供します。 4ソケットサーバーにステップアップする必要がある場合は、シングルスレッドのパフォーマンスが向上し、SQL Server 2012ライセンスが低くなるため、IntelXeonE7-4870プロセッサを使用する代わりにIntelXeonE5-4650プロセッサを選択します。コスト。 TPC-Eベンチマークスコアを使用することは、さまざまなプロセッサフ​​ァミリのパフォーマンスとSQLServer2012ライセンス効率を比較するための優れた方法です。


    1. SQLのSUBSTRINGコマンド:入門書

    2. SQLiteユニオン

    3. null許容列にPRIMARYKEYを使用してテーブルを作成できるのはなぜですか?

    4. 一部のバージョンのOracleでは、相関サブクエリにネスト制限がありますか?