目次
はじめに
この記事では、ハイパースレッド環境での SQL Server のサポートについて説明します。
詳細情報
SQL Server の基本的な設計は、ハイパースレッド環境で完全に機能します。 ただし、ハイパースレッド環境を使用している場合は、次の手順を実行することをお勧めします。
-
Microsoft SQL Server 2000 Service Pack 3 (SP3)、またはそれ以降の service pack を実行します。
-
最新のセキュリティ更新プログラムをインストールします。
Microsoft Windows オペレーティングシステムによって、論理ハイパースレッド Cpu が物理 Cpu として表示されます。 SQL Server は既に高いスケーラビリティを備えているため、追加の Cpu により、SQL Server がより多くのプロセッサを使うことができるようになります。ハイパースレッディングの Microsoft Windows サポートの詳細については、次の Microsoft Web サイトを参照してください。
http://www.microsoft.com/whdc/system/sysinternals/ht-windows.mspxハイパースレッド展開を検討している場合は、次の点に注意する必要があります。
-
モード
-
プロセッサのマッピング
-
処理
-
Intel の CPU カウントユーティリティ
各項目の詳細については、以下を参照してください。
モード
ハイパースレッディングが有効になっている場合、基本的な入力出力システム (BIOS) では、論理対物理 CPU 比率が使用されます。 現在の実装では、2:1 比が使用されています。 これは、物理 CPU ごとに2つの論理 Cpu があることを意味します。 これらの比率は今後変更される可能性があります。ただし、Microsoft SQL Server 2000 Service Pack 3 (SP3) 以降のバージョンには、比率を処理するためのライセンスの制限を調整する追加のライセンスコードが含まれています。 たとえば、インストールされている SQL Server 製品コードによって 4 CPU ライセンスが2:1 比率で許可されている場合、SQL Server 2000 SP3 ビルド以降では、8個の cpu を使用できます。 SQL Server をインストールすると、物理 CPU 数が使用され、SQL Server はこの比率の変換を処理します。 一方、[ アフィニティマスク ] オプションを設定すると、SQL Server は物理プロセッサの場合と同様にすべての cpu を使用しているため、論理 CPU 値を使います。ライセンスおよびサポートされている構成の詳細については、次の Microsoft Web サイトを参照してください。
プロセッサのマッピング
既定では、SQL Server は序数プロセッサの順序に従って、各プロセッサに対して論理ユーザーモードのスケジューリング (UMS) スケジューラを作成します。 ハイパースレッド対応環境では、Microsoft Windows によってすべてのプロセッサが、実際の物理プロセッサであるかのように SQL Server プロセスで利用可能になります。 次の表に、論理積と物理プロセッサのマッピングの例を示します。プロセッサマッピングテーブル1
積 |
現物 |
---|---|
0 |
0 |
1 |
件 |
2 |
両面 |
- |
- |
4d |
0 |
個 |
件 |
= |
両面 |
7 |
- |
もう1つのプロセッサマッピングのサンプルを次に示します。プロセッサマッピングの表2
積 |
現物 |
---|---|
0 |
0 |
件 |
0 |
両面 |
件 |
- |
件 |
4d |
両面 |
個 |
両面 |
= |
- |
7 |
- |
どちらのマッピングも SQL Server で許容されます。 ただし、複数の物理 Cpu を使うことが想定されている場合は、SQL Server が予期せず物理 CPU に制限されている状況を作成しないように注意してください。 [SQL Server のアフィニティマスク] オプションを使って、予測される物理プロセッサの使用量を変更できます。 これを行うには、「プロセッサマッピングテーブル1」を参照してください。 アフィニティマスクが00010001で、プロセッサ0とプロセッサ4を使っている場合、使用中の論理プロセッサは、サンプルの物理プロセッサである #0 にマッピングされます。 これにより、2つの物理プロセッサの代わりに両方の論理プロセッサをサポートする単一の物理プロセッサが使用されます。 この状況では、パフォーマンスが低下する可能性があります。Affinity mask オプションと IO アフィニティマスクスタートアップパラメーターを組み合わせて使うと、既定の動作を変更することができます。 アフィニティマスクオプションまたは IO アフィニティマスクスタートアップパラメーターの詳細については、「SQL Server Books Online」を参照してください。詳細については、以下のマイクロソフト サポート技術情報番号をクリックしてください。
298402 SQL Server の i/o アフィニティオプションの設定方法について警告 アフィニティマスクを確立するときには注意してください。複数の物理プロセッサを使うことを前提としている場合は、同じ物理プロセッサを使って2つの論理プロセッサをサポートすることで、アフィニティマスクを間違って簡単に構成できます。
処理
ハイパースレッド環境のパフォーマンスはさまざまです。 保守的なテストでは、SQL Server のワークロードについて 10 ~ 20% の割合が表示されますが、アプリケーションパターンは大きな影響を受けます。 一部のアプリケーションでは、ハイパースレッディングを利用することでパフォーマンスが向上しないことがあります。 物理プロセッサが既に飽和状態になっている場合は、論理プロセッサを使うことで、実際に実行される作業負荷を減らすことができます。 たとえば、高いレベルの競合を引き起こすアプリケーションは、ハイパースレッド環境でのパフォーマンスの低下を引き起こす可能性があります。 アプリケーションを徹底的にテストすることをお勧めします。これは、ハイパースレッド環境が、同等の物理 Cpu の購入に比べて、必要なパフォーマンスの向上を実現していることを確認することをお勧めします。 ハイパースレッディングはとても役に立ちますが、ハイパースレッディングは、追加の物理 CPU の全機能を置き換えることはできません。この資料に記載されているサードパーティ製品は、マイクロソフトと関連のない他社の製品です。 明示的か黙示的かにかかわらず、これらの製品のパフォーマンスや信頼性についてマイクロソフトはいかなる責任も負わないものとします。Intel の Web サイトには、ハイパースレッディング (Intel NetBurst マイクロアーキテクチャ) に関する適切な情報とチュートリアルが含まれています。 ハイパースレッディング対応のシステムの詳細については、次の Intel の Web サイトを参照してください。
http://software.intel.com/en-us/blogs/2009/06/02/intel-hyper-threading-technology-your-questions-answered http://developer.intel.com
並列処理の最大次数 (MAXDOP)
詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。
2806535 SQL Server の [並列処理の最大限度] 構成オプションの推奨事項とガイドライン