SRA OSS, Inc. 日本支社
PostgreSQL 8.2beta1に対してスケールファクターを変化させてDBT-3ワークロードを実行し、データベースの規模と複雑なSQLを実行した際の検索性能との関係について測定した。 また、本測定では、大規模データベース環境における測定効率を向上させるため、データ再利用機能を追加したDBT-3を使用した。
| H/W | HP ProLiant DL385 |
|---|---|
| CPU | AMD Opteron HT OFF |
| メインメモリ | 5GB |
| HDD | 72.8GB |
| OS | MIRACLE LINUX 4.0 for x86-64 |
| 評価対象ソフトウェア | PostgreSQL 8.2beta1 |
| 負荷ツール | OSDL DBT-3 1.9 |
測定は以下の条件のもとで実施した。
また、測定に際しては以下の設定を行った。
パラメータの値の変更内容は表1に示すとおりである。 なお、変更前後で値が変化していないパラメータは、実際に値を変化させて性能を測定した結果、初期設定の値における性能が最も高かったものである。
| パラメータの値 | ||
|---|---|---|
| 変更前 | 変更後 | |
| wal_sync_method | fsync | fdatasync |
| wal_buffers | 8 | 64 |
| checkpoint_segments | 3 | 16 |
なお、shared_buffers、work_memパラメータについては初期設定の値を設定した。
測定で使用したDBT-3はデータ再利用機能の追加と不具合の修正を行っている。 パッチファイルのダウンロードやデータ再利用機能の使用方法については「DBT-3 1.9におけるデータ再利用機能に関する報告」を参照されたい。
PostgreSQL 8.2beta1におけるデータベース規模の違いによる性能の変化は図1、表2に示すとおりである。
Composite値はQuery Processing Power値とThroughput Numerical Quantity値との相乗平均、Query Processing Power値はストリーム数が1のときの検索性能、Throughput Numerical Power値は指定されたストリーム数における検索性能である。 いずれも単位はQueries per hour × Scale-Factor、すなわち、1時間あたりに実行できたクエリー数にスケールファクターを乗じた値であり、値が大きいほど性能が高いといえる。 また、Load Time値はデータベースの構築に要した時間であり、逆に値が小さいほど性能が高いといえる。

図1: PostgreSQL 8.2beta1におけるデータベース規模の違いによる性能の変化
| スケールファクター | ||||||
|---|---|---|---|---|---|---|
| 1 | 2 | 4 | 8 | 16 | 25 | |
| Composite値† | 922.19 | 583.63 | 120.47 | 67.82 | 57.69 | 50.22 |
| Load Time値‡ | 0.04 | 0.10 | 0.26 | 0.54 | 1.28 | 2.04 |
| Query Processing Power値† | 852.92 | 603.93 | 191.52 | 130.64 | 123.79 | 102.08 |
| Throughput Numerical Quantity値† | 997.09 | 564.02 | 75.79 | 35.21 | 26.89 | 24.71 |
†: 単位は1時間あたりに実行できたトランザクション数 × スケールファクター
‡: 単位は時間
![]() a. スケールファクター = 1、ストリーム数 = 2 |
![]() b. スケールファクター = 2、ストリーム数 = 2 |
![]() c. スケールファクター = 4、ストリーム数 = 2 |
![]() d. スケールファクター = 8、ストリーム数 = 2 |
![]() e. スケールファクター = 16、ストリーム数 = 3 |
![]() f. スケールファクター = 25、ストリーム数 = 3 |