パフォーマンス チームに聞く: ハイパースレッディングと仮想化の関係とは
(この記事は 2015 年 9 月 15 日に Exchange Team Blog に投稿された記事 Ask The Perf Guy: What’s The Story With Hyperthreading and Virtualization? の翻訳です。最新情報については、翻訳元の記事をご参照ください。)
このところ、お客様やパートナーの間で、Exchange を仮想化する際にハイパースレッディングをどう捉えればよいか、かなりの混乱が生じているようです。そこで、この点について少しご説明させていただきたいと思います。
Exchange の最近のバージョンでは、比較的強力な指針として、ハイパースレッディングを無効にするように提言していますが、これは、物理サーバーの展開を対象としたものであり、仮想化展開には適用されません。物理展開においてハイパースレッディングを無効にすることを強く推奨している理由は、次の 2 点にまとめられます。
- ハイパースレッディングを有効にすることによって OS レベルでの論理プロセッサ数が増加すると、メモリ消費量の増加につながり (コア数に基づいてメモリ ヒープを割り当てる際のさまざまなアルゴリズムに起因します)、場合によっては、スレッド数の多さやロック競合が原因で CPU 消費量の増大やその他スケーラビリティにまつわる問題の発生にもつながります。
- ハイパースレッディングによる CPU スループットの向上については不確定であり、計測が困難なため、キャパシティ プランニングに支障が生じます。
最も大きな懸念となるのが 1 つ目の理由ですが、この点については、仮想化展開であればハイパースレッディング構成でも問題ありません。ゲスト VM は、ホストに提示された論理プロセッサを認識しないので、ハイパースレッディングが有効であろうと無効であろうとプロセッサ数は変わりません。ただし、ゲスト VM にとっては、VM に提示される仮想 CPU の数が問題となります。Exchange サーバー VM には、サイジング計算に基づいて必要とされる数よりも多くの仮想 CPU を割り当てないようにしてください。余分な仮想 CPU を割り当てると、物理展開でハイパースレッディングを有効にした場合と同じような問題が発生するおそれがあります。
ここまでの内容をまとめます。
- 物理展開では、ハイパースレッディングを無効にしてください。
- 仮想化展開では、ハイパースレッディングを有効にしてもかまいません (ハイパーバイザー ベンダーの推奨事項に従うことをお勧めします)。
- Exchange サーバーのゲスト VM に必要数以上の仮想 CPU を割り当てないようにしてください。
- サイジングやキャパシティを計算する際には、ホストに提示されている余計な論理 CPU を含めないようにしてください (詳細については、こちらのブログ記事 (英語) のハイパースレッディングの説明をご覧ください)。
Jeff Mealiffe
主任 PM マネージャー
Office 365 カスタマー エクスペリエンス担当