オープンソースソフトウエアの性能・信頼性評価プロジェクトの裏話,続いてはSRA OSS 日本支社の佐藤友章がご紹介します。

 SRA OSS 日本支社はこの場に初めから参加させてもらっていたの で,いつのまにやら古参のメンバーになっていました。私自身は途中からの参 加でしたが,それでもおよそ 1 年半にわたるつきあいです。

規模が大きければそれだけ時間もかかる

 今回,SRA OSSは DBT-3 と呼ばれる負荷ツールによって PostgreSQL 8.1,8.2 の性能評価を実施しました。DBT-3 は意思決定支援のためのワークロードを実 行して性能を測定するツールです。簡単に言ってしまえば,複雑なトランザク ションをどれだけ速く実行できるかを測定するものです。

 DBT-3 は以下の Web サイトからダウンロードでき,誰でも自由に性能測定を 行うことができます。また,iPedia 上には DBT-3 による性能評価の手順も詳 しく書いてあるので,実際に自分の環境で DBT-3 を試してみるのもいいと思 います。

  • SourceForge.net: Database Test Suite
  • DBT-3 1.9 による PostgreSQL の評価手順
  •  DBT-3 による PostgreSQL の性能評価は,DBT-3 が PostgreSQL に対応して以 来,PostgreSQL のバージョンが上がるたびにハードウエアを替えつつ,実施 してきました。

     今回の性能評価がこれまでと異なるのは,対象となるデータベースの規模が非 常に大きく,ディスク容量は最大で 70 GB 近くまで達するということです。

     データベースの規模が大きくなって困ったのは,やはり,DBT-3 の実施時間が 非常に長くなったことです。データベースの規模が大きくなれば実施時間が長 くなることは分かっていましたが,さすがにスケールファクタが 25 ともなれ ば 1 回実施するのに 1 週間近くかかります。1 回実施してすんなり終われば いいのですが,実際にはそうもいきません。

     PostgreSQL の設定を変更するたびに 1 回,メモリのオーバコミットによって プロセスが強制終了させられて 1 回,そんなこんなで何回も DBT-3 を実施す るはめになり,最後は泣きそうになりました。

     なお,DBT-3 による PostgreSQL 8.1,8.2 の性能評価の結果については以下 のリンクから iPedia 上で公開されています。

  • DBT-3 による PostgreSQL 8.1.4 のデータベース規模の違いに関する測定結果
  • DBT-3 による PostgreSQL 8.2beta1 のデータベース規模の違いに関する測定結果
  • DBT-3 による PostgreSQL 8.1.4,8.2beta1 のデータベース規模の違いに関する測定結果の考察
  •  上記の測定結果から 1 つ簡単に説明したいと思います。以下は PostgreSQL 8.1.4 と 8.2beta1 に対してスケールファクタを増やしながら DBT-3 を実施 したときのグラフです。

    PostgreSQL 8.1.4,8.2beta1 における Composite 値の比較

     上記のグラフでは,横軸にスケールファクタ,縦軸に DBT-3 による測定結果 として Composite 値をプロットしています。Composite 値は,1 時間あたり に実行できたクエリ数にスケールファクタを乗じたもので,値が大きければ大 きいほど性能が高いといえます。

     このグラフから見て取れるのは,PostgreSQL 8.1.4,8.2beta1 ともにスケー ルファクタが増えるにつれて性能が下がり,4 を越えたあたりから安定すると いうことです。これは,スケールファクタが 4 まではメモリー上で行われてい た処理が,データベースの規模が大きくなったことにより,メモリーに収まらな くなったためだと考えられます。

     この結果から,DBT-3 のように複雑なトランザクションを実行する場合,デー タがメモリーに収まり,メモリー上でソートなどの処理が行えるかどうかが性能の 分かれ目であることが分かります。

    それでもずいぶん速くなった

     性能を測定するのに 1 週間もかかるのかと思われるかもしれませんが,これ でもすいぶん速くなったものです。

     2004 年度に実施した PostgreSQL 7.4,8.0 の性能測定ではスケールファクタ が 10 で既に 4,5 日かかっていました。実施時間は単純にスケールファク タに比例するわけではないので,スケールファクタが 25 であればおそらく 2 週間はかかることになるでしょう。それを何回も繰り返すとなると,あまり想 像したくありません。

     しかし,これはハードウエアおよびソフトウエアの性能が向上したということ を裏付けています。

     ハードウエアについては,CPU は 64 ビット,デュアルコアが当り前,メモリ やハードディスクの容量もどんどん大きくなっています。ハイパースレッディ ングがどうとか言っていたのが,懐しくさえ思えてきます。また,ソフトウエアもそれに追いつかんとハードウエアを活かせるように進化しています。

     PostgreSQL については,評価を始めたときには 7.4 だったバージョンも,そ れから 3 回メジャーバージョンが上がり,現在では 8.2 が最新のバージョン となっています。そして,バージョンが上がるたびに新しい機能の追加や性能の 改善が行われてきました。そこには,この OSS の評価に関する活動の成果が 少なからず取り込まれています。

     このように評価の結果をもって働きかけを行ったり,作成したパッチを取り込 んでもらったりすることによってソフトウエアの開発に貢献できるのは,それ が OSS であるからこその強みではないかと思います。

      このように各社が入り交じり,ああでもない,こうでもないと言い合える場と いうのは,非常に貴重であるとともに意義のあるものであったと思います。