DBサーバとしても高いスループットを達成:マルチコアCPUがもたらす未来をリードするSun

マルチコアCPUは、多数スレッドの同時処理に適している一方、並列スレッド化されていないソフトウェアでは効果が薄い。そこで、マルチコアCPUの恩恵を受けられるよう、多くのソフトウェアでマルチスレッド化が進められてきた。サン・マイクロシステムズは、伊藤忠テクノソリューションズと共同でパフォーマンスやスケーラビリティの検証を行いつつ、さまざまなミドルウェアのマルチスレッド化を推進している。


並列処理ハードウェアに適応しようとするソフトウェア

 CPUのマルチスレッド化は、近年になって急速に発展した。“CoolThreads”テクノロジーを用いたCPU「UltraSPARC T1」「UltraSPARC T2」や、それらを搭載したサーバ製品でこの分野をリードしているSunは、2008年秋にも4Uラックマウントで256スレッド実行可能というサーバをリリースする予定だ。今後も、さらなる多スレッド化が進むことは間違いないだろう。

サン・マイクロシステムズ システム技術統括本部 テクニカルセンター ビジネス・アプリケーション技術部 システム エンジニア 松下正之氏 サン・マイクロシステムズ システム技術統括本部 テクニカルセンター ビジネス・アプリケーション技術部 システム エンジニア 松下正之氏

 「しかし、CPUのマルチスレッド化が急速に進んだのに対し、ソフトウェアのマルチスレッド化はまだこれから大きな進歩が期待される状況です」と語るのは、サン・マイクロシステムズ(以下、Sun)、 システム技術統括本部 テクニカルセンター ビジネス・アプリケーション技術部 システム エンジニアの松下正之氏。

 マルチスレッド化されたハードウェアを効率的に使うには、並列処理を前提にプログラミングされたソフトウェアが必要になる。

 「商用ソフトウェアであっても、また、現在大きな発展を見せているオープンソースソフトウェア(OSS)にしても、並列処理の実装についてはまだまだ大きな改善の余地があるように思います。例えば、SunはOSSに関して、現在多くのコミッタに入社してもらい、社内でOSSの開発にフルタイムで従事することで、こういった課題に取り組んでおります。このOSSは一例ですが、Sunとしては、ハードウェアからソフトウェアまでフルスタックで、次世代のITシステムにつながるサービスを提供していけるようになろうとしているのです」(松下氏)

 このSunの取り組みの結果、例えば、Solaris10にバンドルしているPostgreSQLにおいて、マルチコアCPU利用時のスケーラビリティが大幅に改善されたなどの成果を出しつつある。

「当たり前」を「当たり前」だと言い切るための検証が重要

 さらにSunは、前回前々回にも紹介した通り、伊藤忠テクノソリューションズ(以下、CTC)と共同で実際の環境に近い条件でサーバに負荷を与えて検証を加え、マルチコア・マルチスレッドCPUによるパフォーマンスやスケーラビリティ向上を確認して情報を提供している。今回も、基本的には共通の手法で、Oracleデータベースを用い、多数トランザクションが集中する状況におけるマルチコア・マルチスレッドCPU搭載サーバの性能試験が行われた。

 今回の検証では、UltraSPARC T2搭載の「Sun SPARC Enterprise T5220」で、従来機「Sun Fire V490」の2倍以上のパフォーマンスを確認したほか、UltraSPARC T1との比較では実行スレッド増加に伴うスケーラビリティが確認できたという。

 また、「クアッドコアXeon」を搭載した「Sun Fire X4150」での検証も合わせて行われ、やはり同様に従来機と比較して高いスループットが得られることを確認した。

 松下氏は、こうした検証結果について、次のように言う。

 「ハードウェアベンダーとしては、メリットばかりを強調してしまいがちですが、良いモノを良い結果をもたらすために使っていただけるようにするためには、それだけでは足りないと思うのです。実際に使うユーザーの皆様が安心して採用できるよう、実環境に近い条件で検証を行った情報をご提供し、もし注意すべき点があればそれも含めて誤解が生じないようにお伝えする、といったことも大いに価値があると考えています」(松下氏)

バッチ処理でのパフォーマンス検証、そして並列化と仮想化の境界線

 なお、かつてSunがUltraSPARC T1を発表した当初、その最適な用途を「DBではなくWebサーバなど」としていた時期がある。しかし現在では、一連の検証結果などにも示されるように、DBサーバとしても高いスループットが確認できるまでになった。

 これについては、「リリース当初としては、新しい技術が極端に適性の無い分野で利用され誤解されないように、という考えがありました。当時は今ほどチップレベルマルチスレッディングという言葉が一般的にはなっておらず、この技術がどのようなアプリケーションに適しているかが認知されていませんでした。また、ユーザーのアプリケーションも並列処理を意識した実装をされていない場合には、H/Wの性能向上を生かしきれない結果となる可能性がありました」と松下氏は言う。

 当時は当時として、確実に適した使い方を説明するために、「DBではなくWebサーバなど」としていたのである。「ただし、ちょっと強く言いすぎたのではないかという反省はあります」(松下氏)。当時の説明が「DBサーバとしては使えない」といった極端な認識として広まってしまっているが、検証の結果が示すとおり、DBサーバとしてもトランザクションでは良いパフォーマンスを発揮することがわかる。

 DBサーバでの利用を考えた場合、もう一点気になるのはバッチ処理だが、実は、新たな検証を通じて、トランザクションのみならずバッチ処理でも、工夫次第ではマルチコア・マルチスレッドCPUのメリットを得られることが確認されたという。

 「バッチ処理を含めた最新の検証結果は、別途Sunのホームページ上で皆様にご案内する予定です。これまでマルチコア・マルチスレッドCPUに縁がないと思われていた分野ですが、この結果を見ていただいて、ぜひ新しい考えを持っていただきたいと思います。マルチスレッド化の流れは、もはやSunだけではなくサーバハードウェア全体のものです。マルチスレッド化の流れに沿って効率的にDBサーバをご利用頂ければと思っています」(松下氏)

 なお、Sunでは、“CoolThreads”テクノロジーを用いた次世代CPU「Rock」の開発を進めている。この新たなCPUでは、並列トランザクション処理の際に発生しがちな共有メモリ読み書きの競合問題への対策として、「おそらく世界初」(松下氏)となるトランザクションメモリをハードウェアレベルで実装するという。ソフトウェアでの対応よりオーバーヘッドが低減されると考えられ、並列処理時の処理能力がさらに向上することが期待できる。

 一方、ソフトウェアの並列化とは別に、最近ではサーバ統合などで仮想化技術も広く使われるようになってきた。多数の小規模なサーバを仮想化で統合する際にも、マルチスレッドCPUの威力が発揮される。用途によっては、サーバ仮想化でもソフトウェア並列化でも、どちらでも効果を発揮するケースがあることだろう。システムを構築する際、そのどちらを選べば良いのか、迷ってしまう可能性も出てくる。

 「我々としては、その場合のガイドラインなども、いずれは新たな常識とすべく、作っていかねばならないと考えています。今後、取り組んでいくことになるでしょう」(松下氏)




提供:サン・マイクロシステムズ株式会社
企画:アイティメディア営業本部/制作:ITmedia エンタープライズ編集部/掲載内容有効期限:2008年7月21日