|
||||||||||||||||||||
| 前のページ 1 2 3 4 | ||||||||||||||||||||
| pgbenchを使った運用性能の測定 | ||||||||||||||||||||
|
運用性能とはデータベースのロード/バックアップ/リストアといった、運用時に必要となる機能の性能である。大規模なデータベースを運用するには、通常運用でのバックアップが現実的な時間内で完了できるのか、障害復旧などのリカバリ時間がどのくらい必要なのか、といった事を運用開始前に把握しておかなくてはならない。さもないと、緊急時の復旧時間が予測できないことになる。 |
||||||||||||||||||||
| pgbenchとは | ||||||||||||||||||||
|
バックアップとリストアには、PostgreSQLの標準的なツールであるpg_dumpとpg_restoreを使用した。ロードについては様々な方法が考えられるが、今回の評価ではpgbenchを使用した。pgbenchはPostgreSQLに標準で含まれるツールで、データベース作成とTPC-B類似の性能測定が行えるが、今回はデータベース作成機能のみを使用した。 |
||||||||||||||||||||
| pgbenchのテーブル構成とデータ量 | ||||||||||||||||||||
|
テーブルに投入するデータ量はスケールファクターという単位で指定でき、それがデータベースの規模となる。各テーブルに投入するデータの行数は、スケールファクターを基準にして決定される。図6にテーブル構造およびテーブル毎の行数を示す。 ![]() 図6:テーブル構造と行数 |
||||||||||||||||||||
| 運用性能の測定内容 | ||||||||||||||||||||
|
運用性能の測定では、次の5つの機能に要した時間を測定する。
データのロードにはpgbenchを使用するので、ロードするデータがテキストファイルとして作成されるのではなく、pgbenchによって直接テーブルに挿入される。プログラムでデータを作りながらファイルを経由することなく、データベースへ挿入する時間が測定できる。なお、ファイルからのロードについては、既に説明したDBT-3のロードテストで測定してあるのでそちらを参照されたい。 ここまでに説明したpgbenchのインストール方法と、運用性能の測定方法の詳細については、報告書のDB層7章の7.1〜7.3を参照のこと。 |
||||||||||||||||||||
| 運用性能を測定した結果 | ||||||||||||||||||||
|
PostgreSQLのバージョンおよび設定として、次の4種類の環境で測定した。
テーブルスペースは3台のディスクに対して、行数の多いaccountsのテーブル・ファイル、accountsのインデックス・ファイル、それ以外のファイル群を割り当てた。これにより、ディスクアクセスの分散が効率よく行われると予想した。 また、PITRによるクラッシュリカバリを使用するためには、アーカイブログを設定する必要がある。アーカイブログを設定するとデータベースへの書き込み時にロギングされるので、その分だけ書き込み時のパフォーマンスの低下が予想される。 実行結果については、ハードウェア等の環境により結果が異なるので、以下に記述する内容については、ひとつの例として参考にして頂きたい。 バックアップ時間の結果を図7に示す。性能差はほとんどなかった。バックアップは参照系SQLでインデックスも使わないので、テーブルスペースやアーカイブログの影響はないため、想定の結果となった。 ![]() 図7:バックアップ時間 クラッシュリカバリを使用するためにはアーカイブログを設定する必要があり、更新系SQLの性能低下が少しあるが、緊急時のリカバリ時間が厳しいシステムでは使用する価値があるだろう。 なお、スケールファクター4000のデータが取れていない部分については、ディスク容量不足が原因である。 ![]() 図8:リストア/クラッシュリカバリ時間 |
||||||||||||||||||||
| おわりに | ||||||||||||||||||||
|
前々回から今回までの3回に渡り、IPAおよび、日本OSS推進フォーラム・開発基盤ワーキンググループによって公開された「DB層の評価」報告書を基に、評価手順ならびに評価結果を説明してきた。 今回は、大規模データベースにおけるPostgreSQLの性能評価として、DBT-3を使った検索性能の測定と、pgbenchを使った運用性能の測定について、手順と結果の概略を説明した。詳細については、「DB層の評価」報告書の6〜7章を参照して頂きたい。 最後に苦労点を記しておきたい。DBT-3 ver 1.4がまともに動作するようになるまで、かなりの時間が必要であった。ようやく動作した頃にver 1.5がリリースされたが、こちらの動作にもかなりの時間を費やした。報告書は、当時の最新版であるver 1.5を対象としている。今回、本記事執筆の締切直前にver 1.6がリリースされた。ざっくりと見たところ、我々がver 1.5の評価の一環で作成した修正パッチについても、ver 1.6に取り込まれている事が確認できた。本記事および報告書に基づきDBT-3を実行する場合は、バージョンについて注意されたい。 |
||||||||||||||||||||
|
前のページ 1 2 3 4 |
||||||||||||||||||||
|
|
||||||||||||||||||||
|
|
||||||||||||||||||||
|
||||||||||||||||||||
|
|
||||||||||||||||||||
|
||||||||||||||||||||
|
|
||||||||||||||||||||
|
||||||||||||||||||||




