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

IntelXeonスケーラブルプロセッサとSQLServer2017

    2017年7月11日、Intelはサーバープロセッサの新しい14nm Intel Xeonスケーラブルプロセッサフ​​ァミリ(Skylake-SP)を正式に発売しました。このファミリは、前世代の14nm Intel XeonE7v4および14nmIntelXeon E5 v4(Broadwell-EXおよびBroadwell-EP)プロセッサに代わるものです。

    ブランディングと価格設定

    Intelは、このファミリ全体を、Intel Xeon Platinum、Intel Xeon Gold、Intel Xeon Silver、およびIntelXeonBronzeと呼ばれる4つの異なる製品ラインに分割された新しい「コンバージドプラットフォーム」と呼んでいます。 SQL Serverの使用に関しては、SQL Serverプロセッサコアライセンスのそれぞれで最高のパフォーマンスを得ることに関心がある場合は、プラチナラインとゴールドラインのみが意味をなします。

    前世代のXeonプロセッサとは異なり、新しいXeon Platinumプロセッサは最大28の物理コアを備えており、2ソケット、4ソケット、8ソケットのいずれのマシンでも、すべてのソケットカウントサーバーで使用できます。 Xeon Goldプロセッサには最大22個の物理コアがあり、2ソケットまたは4ソケットのマシンで使用できます。

    インテルは、図1に詳細が示されている新製品のブランディングと番号付けの規則を使用しています。新しいAMD EPYCプロセッサーとは異なり、インテルはこのラインナップで多くのマーケティングと収益性主導の製品セグメンテーションを行っているため、理解が難しくなります。ワークロードに適したプロセッサを選択するのはさらに困難です。

    図1:IntelXeonスケーラブルプロセッサの製品番号付け規則

    この有害な製品セグメンテーションの代表的な例の1つは、「M」SKUプロセッサ(Mサフィックスが付いたプロセッサモデル)で、非「M」SKUモデルのソケットあたり768GBのメモリとは対照的に、ソケットあたり1.5TBのメモリをサポートします。 Intelは、その追加のメモリサポートに対して約$ 3000.00のプレミアム(プロセッサあたり)を請求します。これは、特に低コストのプロセッサの場合、かなり大幅な増加です。 8コアのIntelXeonGold6134プロセッサはそれぞれ$2,214.00で、8コアのIntel XeonGold6134Mプロセッサはそれぞれ$5,217.00です。他のすべての仕様(およびパフォーマンス)は、これら2つのプロセッサーで同じです。 SQL Serverの使用については、ソケットあたり2倍のメモリ容量を取得するためにそのプレミアムを支払うことは完全に理にかなっています(特にSQL Serverのライセンスコストと全体的なメモリコストを考えると)が、Intelがある程度の価格を設定しているという事実は好きではありませんここでガウジングします。

    アーキテクチャの変更

    Skylake-SPには、Broadwell-EP/EXで使用される共有分散モデルからSkylake-SPで使用されるプライベートローカルモデルに変更される異なるキャッシュアーキテクチャがあります。この変更がSQLServerのワークロードにどのように影響するかはまだわかりません。

    Broadwell-EP / EXでは、各物理コアに256KBのプライベートL2キャッシュがありましたが、すべてのコアは60MB(通常は2.5MB /コア)の大きなL3キャッシュを共有していました。各コアのL2キャッシュ内のすべての回線は、包括的で共有されたL3キャッシュにも存在していました。

    Skylake-SPでは、各物理コアに1MBのプライベートL2キャッシュがありますが、すべてのコアは38.5MB(通常は1.375MB /コア)の大きなL3キャッシュを共有します。各コアのL2キャッシュ内のすべての行がそうでない場合があります 非包括的で共有されたL3キャッシュに存在します。

    L2キャッシュを大きくすると、L2キャッシュからのヒット率が高くなり、有効なメモリレイテンシが低下し、L3キャッシュとメッシュ相互接続の需要が低下します。 L2キャッシュは通常、Skylake-SPのL3キャッシュよりも約4倍高速です。図2に、Skylake-SPでの新しいキャッシュアーキテクチャの変更の詳細を示します。

    図2:キャッシュアーキテクチャの比較

    もう1つの新しいアーキテクチャの改善点は、前世代のIntel Quick Path Interconnect(QPI)に代わるIntel Ultra Path Interconnect(UPI)です。 Intel UPIは、単一の共有アドレス空間に複数のプロセッサを含むシステム向けのコヒーレント相互接続です。 IntelUPIをサポートするIntelXeonプロセッサは、他のCPUソケットへの高速で低レイテンシのパスを使用して他のIntelXeonプロセッサに接続するための2つまたは3つのIntelUPIリンクを提供します。 IntelUPIの最大データレートは10.4GT/ s(ギガ転送/秒)ですが、最速のBroadwell-EP/EXプロセッサで使用されるIntelQPIの最大データレートは9.6GT/sです。

    Skylake-SPのもう1つの重要な新機能は、512ビット幅のベクトルを計算できるAVX-512サポートが含まれていることです。これにより、AVX2、AVX、SSEなどの古いベクトル命令セットと比較して速度が大幅に向上します。これらの命令セットは通常、圧縮や暗号化などに使用されます。

    また、AVX-512は、古い命令セットと比較してGFLOPS/WattおよびGFLOPS/GHzの点ではるかに優れた電力効率を備えているため、AVXコードがいずれかで実行されている場合、Intelはすべてのコアのクロック速度を下げる必要はありません。コアとコアは、そのコアで実行されているAVXコードのタイプに応じて、各コアを異なる速度で実行することもできます。

    SQLServerハードウェアサポート

    SQL Server 2016で、MicrosoftはCPUでサポートされるSSEおよびAVX命令のサポートを導入し、列ストアインデックスおよび一括挿入での行バケット化のパフォーマンスを向上させました。また、AES-NI暗号化のハードウェアサポートも追加しました。特定のハードウェアに対するこの新しいソフトウェアサポートが、さまざまなプロセッサ世代にどのようにマッピングされているかについて、ここで説明しました。うまくいけば、Microsoftはこのタイプのコードを拡張してSQLServer2017でのAVX-512サポートをカバーする予定です。

    Skylake-SPのもう1つの新機能は、Intel Speed Shiftのサポートです。これにより、プロセッサコアはp-stateとc-stateをはるかに効果的に変更できます(これにより、プロセッサコアははるかに迅速に「スロットルアップ」できます)。この機能は、Broadwellで導入されたハードウェア電源管理(HWPM)に基づいており、ネイティブモードと呼ばれるHWPMとオペレーティングシステムの連携を可能にする新しいモードを備えています。ネイティブモードは、Linuxカーネル4.10およびWindowsServer2016でサポートされています。

    私が見た初期のベンチマークのいくつかによると、これらのSkylake-SPプロセッサは、同じクロック速度で実行されているBroadwell-EPコアよりもIPCが約10%向上しています。特定の新機能(AVX-512やFMAなど)を利用するソフトウェアでは、パフォーマンスが大幅に向上する可能性があります。

    SQL Server 2017 OLTPワークロードに関して、Lenovoは2017年6月27日に、2つの28コアIntel XeonPlatinum8180プロセッサを搭載したLenovoThinkSystemSR6502ソケットサーバーのTPC-Eベンチマーク結果を提出しました。このシステムの生スコアは6,598.36でした。そのスコアを56の物理コアで割ると、117.83のスコア/コアが得られます(これはシングルスレッドCPUパフォーマンスの指標です)。

    比較のために、Lenovoは、2つの22コアIntel XeonE5-2699v4プロセッサを搭載したLenovoSystemx3650M52ソケットサーバーのTPC-Eベンチマーク結果を提出しました。このシステムの生のスコアは4938.14でした。そのスコアを44の物理コアで割ると、112.23のスコア/コアが得られます。 Skylake-SPシステムは、ここではシングルスレッドのパフォーマンスで約5%高速ですが、これはSQLServer2017のプレリリースバージョン用であることに注意してください。

    前世代のXeonプロセッサと比較したIntelXeonスケーラブルプロセッサフ​​ァミリの特定の変更と改善についてさらに詳細なビューが必要な場合は、ここでそれについて読むことができます。


    1. OracleのJSON_ARRAYAGG()関数

    2. 2SQLiteのサンプルデータベース

    3. ライブMySQLクエリを表示するにはどうすればよいですか?

    4. SQL Serverで「smalldatetime」を「time」に変換する(T-SQLの例)