理想的な Microsoft SQL Server 2012 本番サーバーを構築するのは、ストレージ、RAM、プロセッサの選択などの変数が経験豊富な IT 管理者でさえ悩ませる、困難な作業となる可能性があります。前回は、仮想化されていない環境で SQL Server 2012 を実行するための最適なIntel Xeon E5-2600 v2 CPU の選択に関する分析を投稿しました。CPU 以外にも、RAM は、ハードウェア上で実行される SQL のパフォーマンス要件を考慮する際に重要なコンポーネントです。今回のテストでは、Intel プロセッサの調査と同じテストベッドを使用し、今回は、最もパフォーマンスの高い CPU とストレージに、Micron PC3-12800 RAM のステッピングに焦点を当て、そのパフォーマンスへの影響を測定しました。
従来から言えば、SQL Server の RAM が多いほどパフォーマンスが高くなります。追加の RAM を活用すると、特定のストレージ アレイ上の I/O フットプリントが削減され、キャッシュの利点も得られます。すべてを同等に保ちながら、低遅延プロファイルを維持しながら SQL Server 専用にできる RAM の量を検討します。この記事では、SQL Server 専用の 128 GB を割り当てた場合のパフォーマンスへの影響を示します。現在、エンタープライズ レビュー用にデバイスのテストを行っており、8 GB まで割り当てています。
テストベッド
今回の分析では、 Windows Server 2012 を実行しているSupermicro SuperStorage Server 2027R-AR24NVに搭載されている Micron PC3-12800 DDR3 メモリを評価します。このサーバーは、Intel CPU の E5-2600 および E5-2600 v2 ファミリーをサポートする 2U デュアルソケットボックスです。システム RAM は、16 枚の16GB Micron PC3-12800 DIMMで構成されており、各テストで固定されています。SQL Server が使用する RAM の量を変更するには、割り当て設定を変更し、各ステップで選択した量に制限します。ホスト内ストレージには 2.6TB Fusion ioMemory PX600を使用しました。これは、SQL Server のレイテンシが非常に良好であることが確認されています (当ラボでテストした現行世代製品の中で最速)。
サーバの設定
- 2 x Intel Xeon プロセッサ E5-2687W v2 – 25M キャッシュ、3.40GHz、8 コア
- Intel C602チップセット
- メモリ – 256GB (16x 16GB) 1600MHz Micron DDR3 Registered RDIMM (システム専用 128GB、SQL 専用 8 ~ 128GB)
- のWindows Serverの標準2012
- 3 x Supermicro SAS3 HBA (LSI SAS 3008 コントローラー)
- 200GB Micron P400m ブート SSD
- 1 x Mellanox ConnectX-3 デュアルポート VPI PCIe 3.0 アダプター (InfiniBand LoadGen ファブリック)
- 1 x Emulex OCe11102 デュアルポート 10GbE アダプター
ストレージ構成
- サンディスク フュージョン ioMemory PX600 2.6TB
- ハイパフォーマンスモードでの 80% オーバープロビジョニング
- 全電力消費が有効化
- VSL 4.1.1 ファームウェア/ドライバー
パフォーマンス
指定された各RAMステップ間隔は、同じ方法でテストされました。具体的には、シングルノード2P Supermicroサーバー内のPX600にデータベースを配置し、 SQL Server 2012 OLTPベンチマークを活用しました。同クラスのほとんどのストレージデバイスと同様に、1秒あたりのトランザクション数はあまり重視していません。重要なのは、各トランザクションが完了するまでのレイテンシです。
予想どおり、SQL サーバーに割り当てられた RAM の量が増えると、トランザクション パフォーマンスが向上しました。 128GB から 64GB までの間では、TPS に大きな変化は見られませんでした。実際、96GB から 64GB までの低下は、ほぼ同じ誤差の範囲内に収まりました。 16 GB から 8 GB への違いが最大の変化をもたらしました。これは、16 GB がおそらくこの特定のテストおよびサーバー構成にとって有用な最小しきい値であることを示しています。
レイテンシに焦点を当てると、Fusion ioMemory PX600 が 128 ~ 96 ミリ秒のスコアを記録した 64GB、2GB、および 3GB の結果で低レイテンシ パフォーマンスをどの程度維持しているかがわかります。 32GB への低下により遅延は約 66% 増加しましたが、次の 16GB への低下はさらに劇的でした。この変更により遅延が 200% 増加し、RAM が 153GB に減少するとさらに 8% 増加しました。
このテストの一部としてストレージへの影響は示されませんでしたが、DRAM 割り当てが段階的に増加するたびに、データベースが存在するストレージ デバイスの負荷が大幅に減少しました。つまり、メモリが増えると、ストレージにアクセスするリクエストが減り、代わりにシステム メモリ内に留まります。 128GB RAM のバックグラウンド負荷は 50~100MB/s でしたが、16GB では 800MB/s に増加しました(DRAM 構成で大きなスパイクを引き起こす可能性があるログ書き込みアクティビティ中は除きます)。記憶媒体の容量が小さい場合、これらの結果はさらに向上します。
結論
高性能の非仮想化 SQL Server を構築する場合、多くの考慮事項があります。最初の部分では、CPU とその SQL パフォーマンスへの影響について調べました。ここでは、最高のパフォーマンスを発揮するホスト内ストレージと CPU を使用して RAM をテストします。 Micron と提携して、SQL 専用の 8 GB ~ 128 GB の RAM で同じテストを実行しました。結果は非常に直感的で、一般に RAM が多いほどレイテンシの点で優れています。ただし、この構成では遅延が劇的なピークに達する限界点があります。 16GB では遅延が 3GB に比べて 32 倍に急増し、8GB ではその影響はさらに深刻になります。最高のパフォーマンスを実現するには、最高クロック速度の CPU と最先端の PCIe ストレージを備えた SQL 用 128 GB の RAM により、わずか 2 ミリ秒のレイテンシが生成されます。




Amazon