PR

PostgreSQL9.0の安定性と高い可用性を実証 アシストによるPostgreSQL検証セミナーレポート

2011年4月1日(金)

OSSながら商用RDBMSに匹敵する機能を備えた『PostgreSQL』。株式会社アシストでは、企業システムへのOSS利用ニーズをとらえ、2009年からPostgreSQLの導入サポート事業を展開。本稿では、2011年2月18日に開催された同社主催のPostgreSQL検証セミナーの様子をレポートする。セミナーは、企業のIT担当者を中心とした77名の受講者に対し、PostgreSQLの基本性能をはじめ、実検証を元に信頼性や可用性を探る2つのセッションが披露された。

追記型固有の課題を克服し、1000同時セッションでも安定した動作

最初のセッションは「PostgreSQL 9.0の実力を探る」と題し、PostgreSQLの特徴やOracleとの相違点や、PostgreSQL固有機能に特化した性能評価、そしてRDBMSとしての基本性能評価などが発表された。

登壇者<br />株式会社アシスト データ基盤ソフトウェア事業部 高瀬洋子氏

登壇者 株式会社アシスト データ基盤ソフトウェア事業部 高瀬洋子氏

商用データベースであるOracleとPostgreSQLを比較した場合に大きく違う点は、読み取り一貫性の実装方法。Oracleは、データベースの内容を変更する前の情報を専用の領域に保存する仕組み(スナップショット型)を持つのに対し、PostgreSQLは、データの更新・削除の場合でも以前の行データは削除されずに残す仕組み(追記型)を持つ。PostgreSQLの仕組みはシンプルであるが、表の領域が拡張してしまう。したがって、物理ファイルの肥大化やパフォーマンス劣化を防ぐために、定期的に不要な領域を再利用可能にするVACUUM処理が必要となる。

手動で定期的にVACUUM処理を行う面倒さは、バージョン8.1からの「自動VACUUM」機能により解消した。また、VACUUM処理中のユーザー側のパフォーマンス低下を抑えるため、処理を一定時間休止させる「遅延VACUUM」機能も用意されている。講演では、コールセンターシステムの疑似アプリケーションを例に、自動VACUUMと遅延VACUUMを組み合わせて、性能低下を抑制した実証結果が披露された。

また、追記型の特性は、PostgreSQLの索引を肥大化するという課題もある。これを克服すべくバージョン8.3から加わったのが、索引の更新を抑制するHOT(Heap-Only Tuples)機能だ。疑似アプリケーションを使ったHOTの効果検証結果では、同一時間内に発生する不要行数がHOT無し(バージョン8.2)が110万行であったのに対し、HOT有り(同9.0)の場合は20万行と大幅な改善が見られた。

追記型固有の機能が由来となる検証のあとは、RDBMSとしての基本性能評価が発表された。CPUコア数や同時セッション数を変化させ、平均TPSや平均応答時間を図ったスケーラービリティの検証、共有バッファを使ったチューニング結果、48時間の継続的な処理実行によるTPMの推移などが披露され、1000同時セッション前後でも安定した動作が確認された。これらの検証により、中規模のOLTP系システムへのPostgreSQL採用は可能と結論づけた。

図:CPUコア数を変化させ、平均TPSを確認する検証。同時1000セッションにおいてCPUコア数を増加させることにより、TPSが向上することを確認した。

図:CPUコア数を変化させ、平均TPSを確認する検証。同時1000セッションにおいてCPUコア数を増加させることにより、TPSが向上することを確認した。(クリックで拡大)

図:CPUコア数と同時接続セッション数を変化させ、平均TPSとTPSの推移 トランザクションの平均応答時間を確認する検証。同時1000セッションにおいても安定 したTPS推移を確認した。

図:CPUコア数と同時接続セッション数を変化させ、平均TPSとTPSの推移 トランザクションの平均応答時間を確認する検証。同時1000セッションにおいても安定 したTPS推移を確認した。(クリックで拡大)

連載バックナンバー

Think IT会員サービス無料登録受付中

Think ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。会員登録を済ませてThink ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

他にもこの記事が読まれています

PostgreSQL9.0の安定性と高い可用性を実証 アシストによるPostgreSQL検証セミナーレポート | Think IT(シンクイット)

Think IT(シンクイット)

サイトに予期せぬエラーが起こりました。しばらくたってから再度お試しください。