by Gartner
カール・クランチ VP兼最上級アナリスト
亦賀 忠明 VP兼最上級アナリスト

 サーバーの処理性能の伸びはとどまるところをしらない。1チップに搭載できるプロセサコア数と、一つのプロセサコアが処理できるスレッド数の増加が性能向上をけん引している。

 今、プロセサはマルチコアの時代を迎えている。マルチコアとは一つのプロセサパッケージ(チップ)に複数のプロセサコアを搭載する技術である。

 チップ当たりのプロセサコア数は2年で2倍になる傾向が続いている。このままいくと2009年は8コアチップが、その2年後には16コアが登場する。そして4年後は32コア、6年後は64コアになる。しかも各コアでは2スレッドが同時に動く。

 早ければ6、7年後には2ソケットの小型サーバーが256プロセサコアを搭載するだろう。4ソケットの中型サーバーなら512プロセサコアだ。16または32ソケットを持つ大型サーバーだと4096プロセサコアを管理しなければならないことになる。

 1台のサーバーに搭載できるプロセサコア数の増加はソフトウエアにとって大きな負担となる。端的に言うとハードの進化にソフトの拡張が追いついていない。

 特に問題なのはマイクロソフトのサーバー向けOS「Windows Server 2008」だ。仕様では最大64プロセサコアまでしか管理できない。5年もたつとWindowsが能力を最大限に引き出せるサーバーは、2ソケットの小型機だけになってしまう。

 仮想化ソフトも同様の問題を抱えている。マイクロソフトの「Hyper-V」はマシン当たり最大24プロセサコアを扱える。2ソケットの小型サーバーは3年後には32プロセサコアを搭載可能になり、Hyper-Vの上限値を超える。

256プロセッサコア時代にはアプリケーションの書き換えが必要に

 Windowsは今後数年にわたって拡張性の問題に直面するとガートナーは考えている。実際問題としては、Windowsの上限値よりも少ないプロセサコア数で性能向上が頭打ちになることも少なくない。例えばデータベースソフトの「SQL Server」は仕様上64プロセサコアまで利用できるが、実際にはその前に限界が来る。ユーザーは標準的なベンチマークテストなどを参考に、現実の上限値を探る必要がある。

 もちろんマイクロソフトは解決に精力的に取り組むだろう。上限値を可能な限り引き上げるはずだ。すでに開発中のWindows Server 2008 R2で上限値を最大256プロセサコアに引き上げることを明らかにしている。

 ただし256プロセサコアを利用するには、新しいAPIを使うようソフトを書き直す必要がある。それまではWindows Server 2008上で動くアプリケーションの拡張性は制限されたままだ。

 サーバーのマルチコア化はますます加速する。普及モデルのサーバーでも非常に高い性能を発揮する。

 だが、その高い能力を享受するには新しいOS環境に移行しなければならない。そして移行にはかなりの時間がかかる。ほとんどの顧客は新しいOSが出ても数年は様子見で飛びつかないので、せっかく購入したサーバーの能力を100%引き出せない状態が続きかねない。

 マルチコア化にOSの拡張性が追いつかないのはWindows環境に限った問題ではない。業界全体の問題だ。拡張性をさらに高いレベルに引き上げる作業は徐々に難しくなる。今のところ、256プロセサコア以上で実用的な性能を発揮できるOSは存在しない。だが、5~10年以内には、この壁を打ち破るOSが開発されるに違いない。

 IBMのメインフレーム用OS「z/OS」は64プロセサコアまで直線的に性能が向上することを実証している。過去30年にわたる継続的な努力がこれを可能にした。

 UNIXは最大128~256プロセサコアまで使える。Linuxも仕様上は高い拡張性を持つが、多数のプロセサを使ったときの性能はまだ実証されているとは言い難い。