( 第一版 ) OSDL DBT-3 による PostgreSQL の性能評価 (SATA HDD&SATA SSD 編 ) Uptime テクニカルレポート 2012 年 5 月 アップタイム テクノロジーズ合同会社 107-0062 東京都港区南青山 2-11-13 南青山ビル 4F TEL:050-3585-7837 FAX:03-5770-7883 http://www.uptime.jp/
OSDL DBT-3 による PostgreSQL の性能評価 (SATA HDD&SATA SSD 編 ) 2 OSDL DBT-3 による PostgreSQL の性能評価 (SATA HDD&SATA SSD 編 ) 目次 1. はじめに...4 2. 本検証の目的...5 3. 評価環境...6 3.1 評価環境概要...6 3.2 ハードウェア構成...6 3.3 ソフトウェア構成...7 3.4 ファイルシステム構成...7 4. 評価モデル...8 4.1 評価モデル概要...8 4.2 データベース...8 4.3 スキーマ...9 4.4 クエリ...9 5. DBT-3 テスト実施手順... 10 5.1 DBT-3 テスト実施手順概要... 10 5.2 DBT-3 テスト実施手順詳細... 10 5.3 出力の確認... 11 6. 実行結果... 13 6.1 クエリの実行時間... 13 6.2 クエリ処理速度の相対比較... 14 6.3 CPU の利用状況... 15 6.4 ディスク I/O の利用状況... 16 7. 実行結果の分析および考察... 17 7.1 SSD 上で実行時間が大幅に短縮したクエリ... 17 7.2 SSD 上で実行時間があまり短縮しなかったクエリ... 23 8. まとめ... 32 9. APPENDIX... 34 9.1 SYSCTL.CONF... 34 9.2 MTAB... 34
OSDL DBT-3 による PostgreSQL の性能評価 (SATA HDD&SATA SSD 編 ) 4 1. はじめに "BigData" という言葉が広く使われるようになり 今 改めてデータ分析技術およびビジネスにおけるデータ活用の重要性が喧伝されている 分散処理技術やその応用により データ分析の対象となるデータの種類やボリュームが飛躍的に増えつつあるとされている ソフトウェアの分野では オープンソース RDBMS はもとより NoSQL や Hadoop など 既存の技術を補完する技術が普及しつつある またハードウェアの分野では マルチコア / メニーコア CPU SSD を始めとする半導体フラッシュストレージなどが浸透しつつある このように プラットフォームを構成する要素技術として新たな選択肢が増えつつあるが 現実のデータ分析プラットフォームを構築する上では これらの要素技術の Pros/Cons を理解した上で最適な組み合わせ best-of-breed で活用する必要がある さまざまな技術の登場により 従来のような定型データだけでなく非定型データを対象としたり テラバイト ペタバイトサイズのデータを分析することも可能になりつつあるが 実際のビジネスの現場におけるデータ管理 データ分析プラットフォームの主流技術は 今現在も RDBMS である よって データ分析に対する投資から十分なリターンを得るには まずは既存の RDBMS の持つ可能性を十二分に引き出すことが不可欠であることは論を待たない このような問題意識に基づき 本レポートでは コモディティとなった技術を組み合わせることでどのようなことが実現可能になるのか その費用対効果も見据えた技術的な判断材料を提供することを目的とする アップタイム テクノロジーズについてアップタイム テクノロジーズでは オープンソースソフトウェアの利用において必要な技術検証から設計 開発 運用まで システムのライフサイクルに渡ってお客様を支援するための技術サポートサービス OSS 導入サポートサービス を提供しています 詳細は以下の URL をご覧ください アップタイム テクノロジーズ OSS 導入サポートサービス http://www.uptime.jp/go/oss
OSDL DBT-3 による PostgreSQL の性能評価 (SATA HDD&SATA SSD 編 ) 5 2. 本検証の目的 本検証の目的を以下のように定める データ分析システムにおいて SSD がパフォーマンス向上に寄与するかどうかを検証する 処理内容によってどの程度パフォーマンス向上に違いが出るかを検証する 性能が向上する または向上しない理由をデータベースアーキテクチャの面から分析する データ分析システムのアーキテクチャ設計への示唆を得る なお 本資料では PostgreSQL のアーキテクチャそのものの詳細な解説は行っていない そのため PostgreSQL のアーキテクチャについて理解を深めたい場合には 以下のコンテンツを適宜利用していただきたい PostgreSQL アーキテクチャ入門 ( 自習用教材 ) http://www.uptime.jp/ja/products-services/pgsql-training/dg01/
OSDL DBT-3 による PostgreSQL の性能評価 (SATA HDD&SATA SSD 編 ) 6 3. 評価環境 3.1 評価環境概要 今回の評価環境の構成の概要を以下に示す DB サーバ HDD OS 領域 SATA 3Gbps DB 領域 (1) SSD DB 領域 (2) 本検証では データベースサーバのオンボード SATA インターフェースに ハードディスク 1 台 および SSD 1 台を接続し OS 領域は HDD に確保し DB 領域 (PostgreSQL のデータベースクラスタ ) は HDD の測定を行う場合には HDD 上に SSD の測定を行う場合には SSD 上に確保する構成とする 負荷を発生させるテストプログラムも データベースサーバ上で動作させるものとする 3.2 ハードウェア構成 本検証のハードウェア構成は以下の通り DB サーバ :NEC Express5800/GT110b CPU:Xeon Intel Xeon X3440 2.53GHz (Quad Core / 8 スレッド ) RAM:Unbeffered ECC 16GB HDD:HGST Deskstar 1TB 7200rpm (SATA 3Gbps) SSD:Intel SSD 320 Series 160GB (SATA 3Gbps) なお HDD の最大転送速度は 193MB/sec(1,546Mbits/sec) SSD の最大転送速度は 270MB/sec ( 連続読み取り時 ) である
OSDL DBT-3 による PostgreSQL の性能評価 (SATA HDD&SATA SSD 編 ) 16 6.4 ディスク I/O の利用状況 以下は HDD および SSD に対して それぞれ DBT-3 のテストを 1 回実行している際のディスク I/O の推移である ( 横軸の実行時間の縮尺が HDD と SSD で異なっている点に注意 ) I/O Throughput (HDD) MB_read/s MB_wrtn/s 140 Read/Write Throughtput (MB/second) 120 100 80 60 40 20 0 1 31 61 91 121 151 181 211 241 271 301 331 361 391 421 451 481 511541 571 601 631 661 691 721 751 781 811 Elapsed Time (minutes) I/O Throughput (SSD) MB_read/s MB_wrtn/s 250 Read/Write Throughput (MB/second) 200 150 100 50 0 1 31 61 91 121 151 Elapsed Time (minutes)
OSDL DBT-3 による PostgreSQL の性能評価 (SATA HDD&SATA SSD 編 ) 17 7. 実行結果の分析および考察 7.1 SSD 上で実行時間が大幅に短縮したクエリ 今回 SSD を使用することによって 10 倍以上パフォーマンスが向上したクエリは以下の 3 つである RF1 クエリ (5,301.3 秒 337.6 秒 : 約 15.70 倍 ) Q20 クエリ (13,555.4 秒 939.2 秒 : 約 14.43 倍 ) Q8 クエリ (6,996.8 秒 579.4 秒 : 約 12.08 倍 ) 以下に EXPLAIN ANALYZE によるクエリプランおよび実行結果を見ながら各クエリの詳細な分析を行う なお 上記の数字は 3 回計測した平均値であり 以下に出てくる個別のクエリプランおよび実行結果 (EXPLAIN ANALYZE) の数値とは必ずしも一致しない RF1 クエリ RF1 クエリは 以下の SQL である create table tmp_lineitem$set_num (l_orderkey numeric(10), l_partkey numeric(10), l_suppkey numeric(10), l_linenumber numeric(10), l_quantity numeric(12,2), l_extendedprice numeric(1 2,2), l_discount numeric(12,2), l_tax numeric(12,2), l_returnflag char(1), l_linestatus cha r(1), l_shipdate date, l_commitdate date, l_receiptdate date, l_shipinstruct char(25), l_sh ipmode char(10), l_comment varchar(44)); COPY tmp_lineitem$set_num FROM '/tmp/lineitem.tbl.u$set_num' USING DELIMITERS ' '; insert into lineitem (select * from tmp_lineitem$set_num); create table tmp_orders$set_num (o_orderkey numeric(10), o_custkey numeric(10), o_orderstat us char(1), o_totalprice numeric(12,2), o_orderdate date, o_orderpriority char(15), o_clerk char(15), o_shippriority numeric(10), o_comment varchar(79)); COPY tmp_orders$set_num FROM '/tmp/orders.tbl.u$set_num' USING DELIMITERS ' '; insert into orders (select * from tmp_orders$set_num); drop table tmp_lineitem$set_num; drop table tmp_orders$set_num; このクエリは lineitem テーブルと orders テーブルについて テーブル全体の 1/12 のレコードを新規に追加する という処理である RF1 クエリの実際の実行時間を見てみると それぞれのテーブルに対する INSERT 文の処理 ( 下
OSDL DBT-3 による PostgreSQL の性能評価 (SATA HDD&SATA SSD 編 ) 54 定価 1,260 円 ( 税込 ) OSDL DBT-3 による PostgreSQL の性能評価 (SATA HDD&SATA SSD 編 ) 第一版 2012 年 5 月 著者 : 永安悟史 snaga@uptime.jp アップタイム テクノロジーズ合同会社 107-0062 東京都港区南青山 2-11-13 南青山ビル 4F TEL:050-3585-7837 FAX:03-5770-7883 http://www.uptime.jp/ 無断転載 複製を禁ず