大容量メモリーを搭載した HP ProLiant サーバーでの検証結果 および移行時の課題と解決方法 2014年7月17日 日本ヒューレット・パッカード株式会社 プリセールス ソリューション部 滝谷 誠 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 大容量メモリ(ビッグメモリ)の 有効利用 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. メモリの価格と集積化の流れ メモリの価格は下落 メモリは高集積化 1/1/2010 1/1/2011 1/1/2012 1/1/2013 1/1/2014 大容量メモリを搭載したマシンの登場 3 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. PostgreSQL/Postgres Plus の主なメモリ利用方法 PostgreSQL/Postgres Plus 共有バッファ オペレーティングシステム(OS) wal バッファ ページキャッシュ (バッファキャッシュ) 共有メモリ autovacuum サーバー プロセス プロセス maintenance _work_mem 4 サーバー プロセス temp_buffers サーバー プロセス work_mem © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. ディスク 共有バッファ PostgreSQL/Postgres Plus 共有バッファ オペレーティングシステム(OS) wal バッファ ページキャッシュ 共有メモリ パラメータ shared_ buffers 5 説明 ディスクのキャッシュとして使用するメモリサイズ。 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. デフォルト 128MB 共有バッファの使い方 PostgreSQL/Postgres Plus オペレーティングシステム(OS) 共有バッファ 共有メモリ ページキャッシュ 1. 必要なデータが共有バッファ に存在しない サーバー プロセス ブロック 6 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. ディスク 共有バッファの使い方 PostgreSQL/Postgres Plus オペレーティングシステム(OS) 共有バッファ 共有メモリ ページキャッシュ 3. ディスクからデータを読み込み、 ページキャッシュに配置 サーバー プロセス 2. OS を介してデー タを読み込む ブロック 7 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. ディスク 共有バッファの使い方 PostgreSQL/Postgres Plus オペレーティングシステム(OS) 共有バッファ 4.共有メモリ 共有バッファを介して データを読み込む ページキャッシュ サーバー プロセス ブロック 8 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. ディスク ビッグメモリの効果的な使い方 その1 PostgreSQL/Postgres Plus オペレーティングシステム(OS) 共有バッファ データベース 共有メモリ サーバー プロセス 9 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. ページキャッシュ すべてのデータが ページキャッシュ内 にあれば、高速な データベース 検索ができそう。 ビッグメモリの効果的な使い方 その2 PostgreSQL/Postgres Plus オペレーティングシステム(OS) 共有バッファ データベース すべてのデータが共有バッファ 内にあれば、高速な検索がで きそう。 ページキャッシュ ただし、ダブルバッファリング。 データベース 共有メモリ サーバー プロセス 10 データベース データベース © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. WAL バッファ PostgreSQL/Postgres Plus 共有バッファ オペレーティングシステム(OS) wal バッファ ページキャッシュ 共有メモリ パラメータ wal_buffers 11 説明 ディスクに書き込む前の WALデータを保存する メモリサイズ。 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. デフォルト shared_buffers の1/32(約3%) WAL バッファの動き PostgreSQL/Postgres Plus オペレーティングシステム(OS) wal バッファ 1. 特定のタイミング で書き出す ページキャッシュ 共有メモリ サーバー WAL プロセス ライター 常にディスクへの書き込み が発生し、ビッグメモリを 効果的に利用できない。 12 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 2. ディスクに同時に書き込む (デフォルト) ブロック ディスク 作業用バッファ(postgres プロセスが使用するメモリ) PostgreSQL/Postgres Plus 共有バッファ オペレーティングシステム(OS) wal バッファ ページキャッシュ 共有メモリ autovacuum サーバー プロセス プロセス maintenance _work_mem 13 サーバー プロセス temp_buffers サーバー プロセス work_mem © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 作業用バッファ パラメータ 説明 デフォルト maintenance_work_mem VACUUM、CREATE INDEX などの保守操作で使用され るメモリの最大サイズ。 16MB temp_buffers 一時テーブル用のメモリサイズ。 8MB work_mem ソートやハッシュなど問合わせの内部処理で使用す るメモリサイズ。 1MB Note • プロセス起動時にメモリが獲得されるわけではなく、必要となった時に確保される。 • トータルのメモリ使用量は、postgres プロセスや autovacuume プロセス数に依存する。 14 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 作業用バッファの動き PostgreSQL/Postgres Plus オペレーティングシステム(OS) 1. 領域があふれると一時ファイル としてディスクに書き込まれる ページキャッシュ 共有メモリ 作業用バッファが十分に 大きく、一時ファイルへの 書き込みが発生しなけれ ば、高速な検索ができそう。 サーバー プロセス 2. 必要な際に再び読み込まれる work_mem ブロック 15 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 気になる点と検証内容 番号 検証1 検証2 検証3 16 タイトル 大容量ページキャッシュによる効果 大容量共有バッファによる効果 大容量作業用バッファの効果 カテゴリ 内容 共有バッファ ページキャッシュにデータベース全体を配置し、 読み込みの IO を発生させないと、検索はどの 程度高速になるのか? 共有バッファ 共有バッファにデータベース全体を配置し、読 み込みの IO を発生させないと、検索はどの程 度高速になるのか? 作業用バッファ 作業用バッファが十分に大きく、一時ファイル への書き込み及び一時ファイルからの読み込 みを発生させないと、検索はどの程度高速な のか? © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 検証環境 1/2 ハードウェア – – – – – 製品名 プロセッサーファミリ プロセッサー数 メモリ ディスク HP ProLiant DL580 Gen8 インテル® Xeon® プロセッサー E7-4890 v2 2.80GHz 4P/60C/120T 2TB 10 x 1.2TB 2.5inch SAS RAID-10 ソフトウェア – – 17 OS Postgres Plus RHEL 6.5 x86_64 9.3.4 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 検証環境 2/2 検証環境 – – – 18 使用負荷ツール データベースサイズ テスト内容 DBT3 (TPC-H に似たワークロード) 150 GB 24 個の SQL を実行し、最も時間のかかるクエリーの応答時間で比較 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 検証1:大容量ページキャッシュによる効果 200 倍 150 応答時間の 相対性能比 (0 に近い程早い) 160倍高速 100 50 0 19 1 2 Note 全体メモリ量 shared_buffers work_mem 32 GB 128 MB 1 MB 2 TB 128 MB 1 MB 番号 項目 1 ディスクIOあり データすべてがページ キャッシュ内に存在しない 2 ディスクIOなし データすべてがページ キャッシュ内に存在する © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 検証2:大容量共有バッファの効果 1.5 応答時間の 相対性能比 (0 に近い程早い) 倍 36%高速 1 0.5 0 1 番号 20 項目 2 全体メモリ量 shared_buffers work_mem 1 大容量共有バッファを併用する 2 TB 250 GB 1 MB 2 大容量共有バッファを併用しない 2 TB 128 MB 1 MB © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 検証3:大容量作業用バッファの効果 1.2 倍 22%高速 1 応答時間の 相対性能比 (0 に近い程早い) 0.8 0.6 0.4 0.2 0 1 21 番号 項目 1 一時ファイルへの IOあり 2 一時ファイルへの IOなし 2 全体メモ リ量 shared_buffers work_mem 作業用バッファ内にすべて のデータが入らない 2 TB 128 MB 1 MB 作業用バッファ内にすべて のデータが入る 2 TB 128 MB 100 GB Note © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 検証の考察 確認できたこと • 今回の検証では、データすべてをページキャッシュにのせることで、性能が最大 160 倍 (*)高速になった。 • ページキャッシュを利用することで、shared_buffers のチューニングはほぼ不要。 • 今回の検証では、work_mem 等作業用バッファに十分な領域を確保することで、性能が最大22% (*)高速に なった。 • work_mem に 100 GB という非常に大きな値を指定しても問題は発生しなかった。 • 大容量の共有バッファにすべてのデータベースを配置するより、ページキャッシュにのみキャッシュすること で、性能が最大36% (*)高速になった。 ※今回の検証条件に一致した場合の数値です。条件に 一致しなければ数値は変わります。 22 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. Tips(キャッシュ関連) キャッシュする方法 • • • • $ dd if=ファイル名 of=/dev/null bs=1024K 上記コマンドを並列に実行することで、キャッシュする時間を短縮可能 OS 起動時のスクリプト等で、自動的にキャッシュすることも可能 Streaming Replication のスタンバイサイトでも事前にキャッシュしておくことが可能。 キャッシュをクリアする方法 以下のいずれかのコマンドを実行 • # sync ; echo 3 > /proc/sys/vm/drop_caches • # sync ; sysctl -w vm.drop_caches=3 • # umount ファイルシステム 23 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. Tips(パーティション関連) Postgres Plus の優位点 PostgreSQL のロードにかかる時間 Postgres Plus のロードにかかる時間 100万行 10万行 10倍 50万行 5倍 1 500 1000 1500 2000 1 500 該当パーティション番号 1000 10万行 1500 2000 該当パーティション番号 • PostgreSQL は該当パーティション番号に応じてロード時間がほぼ比例 • Postgres Plus は該当パーティション番号に関係なくロード時間が一定 • Postgres Plus のロード時間は、ロードする行数に比例 24 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 参考:PostgreSQL のパーティション実装例 PostgreSQL のパーティションテーブルで使用するトリガー関数の例 create or replace function func_part_test_insert() returns trigger as $$ begin if ( new.start_datetime >= '20140401000000' and new.start_datetime < '20140501000000' ) then insert into part_test_201404 values (new.*); elsif ( new.start_datetime >= '20140501000000' and new.start_datetime < '20140601000000' ) then insert into part_test_201405 values (new.*); elsif ( ・・・・ ・・・・ else raise exception 'ERROR! Date out of range.'; end if; return null; end; パーティション数分elsifを続ける $$ language plpgsql; 25 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. どんなハードウェアが最適か? © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. HP ProLiant DL580 Gen8 60CORE 6TB 最新のインテル® Xeon® E74800/8800 v2 プ ロ セ ッ サ ー ファミリーを最大4基搭載。60コ アまでの拡張性を実現。 各社データベースのインメモリ 機能に最適な最大6TBまでの メモリを搭載。メモリバンド幅も 83GB/秒と高速化。 30%up メモリ保護機能などの高可用性機能を搭載し 大幅に信頼性が向上、システム停止を従来の モデルより30%削減。 27 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. ProLiant DL580 Gen8 独自の RAS 機能 Only HP x86サーバーでトップクラスの可用性と堅牢な信頼性 HP Advanced Error Recovery (エラーリカバリ) 実行中に発見された致命 的なプロセッサー、キャッ シュ、メモリのエラーから のリカバリ HP Memory Quarantine HP Advanced Fault Resiliency (メモリ検閲機能) (障害復旧機能) メモリサブシステム内で致 命的なエラーが見つかっ た場合、メモリを無効にし、 割り当てを取り消す メモリとチップセットの耐 障害性機能 (DDDC, SDDC, ミラーメモリ,オンラインス ペアメモリ) HP Advanced Error Containment (エラー 封じ込め設計) PCIe のIO エラーを封じ込め、 データ破損を防止 HP Advanced Event Reporting and Detection (レポーティングと検知) Active Health System . インテグレーテッドマネジメントログ, 高度なログ機能 とOS レベルのクラッシュダンプ, HP アドバンスドメ モリエラー検知, HP アドレス/パリティコントロール, Patrol Scrubber and Demand Scrubber HP 認定オプション(HP Smart メモリ) 28 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. OS や SW と連携した高度な障害回復機能 Only HP メモリとプロセッサ障害によるシステム停止を 30% 減 HP Advanced Error Recovery HP Memory Quarantine 実行中の修復不可能なプロセッサ、キャッシュおよびメモリの エラーからの回復 システムクラッシュの原因になる修復不可能なメモリのエラー からの回復 1 実行パイプライン下のプロセッ サ、キャッシュもしくはメモリの 修復不可能なエラーの検知 1 MCA リカバリーが修復不能 なメモリエラーを検知 4 Processors L1 Cache Core システムは稼働 を続け、クラッ シュを防ぐ L2 Cache DRAM Uncore 2 ファームウェアがOS、 ハイパーバイザ、アプ リケーションへ通知 OS、ハイパーバイザ、アプリケーション が回復アクション( スレッド、プロセス、 VM、 アプリケーションを停止・再起動) を開始 29 2 OS/ハイパーバイザは障害 箇所の新規利用をブロック、 システムは稼動を継続 HP Memory Quarantineは障 害箇所に不良のタグをつけ、 OS やハイパーバイザにアドレ ス情報を通知 4 3 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 3 OS/ハイパーバイザが回 復手法を決定・実施 メモリ保護機能 SDDC DDDC − Single Device Data Correction (SDDC) − DIMM上のDRAMが1つがフェイルしてもメモリ上で吸収 され、システムに影響はなし − 但し、DIMM上のDRAMが2つフェイルするとメモリ上で は吸収できずOSがクラッシュ − メモリミラーリングにより冗長化すると、2倍のメモリが 必要になるためコスト高 – Double Device Data Correction (DDDC) – DIMM上のDRAMが2つフェイルしてもメモリ上で吸 収され、システムに影響なし – 低コストで高いメモリ保護機能を提供 – DIMMの交換回数はSDDCの1/17 クラッシュ オペレーティングシステム オペレーティングシステム ・・・DIMMメモリ ・・・DRAMチップ 30 DL580 はこちら © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. ※Xeon E5,E7シリーズよりDDDCをサポート いよいよ年内にDragonHawk (次世代x86基幹サーバー)を発表予定 Mission-Critical x86 Server DragonHawk 異次元の信頼性(RAS) リアルタイム障害対応、動的セルフヒーリング、障害予知機能・・・ インメモリー時代に応えるスケーラビリティ 最大 24TB の物理メモリー、最大 240 CPUコア、圧倒的な I/O 帯域幅・・・ 「普通の」 Windows、Linux をサポート 新しいスキルは不要、広範囲なアプリケーションを選択可能 一貫した保守・運用環境 OneView など ProLiant サーバーと共通のイ ンフラ管理ソフトウェアをサポート 商用 UNIX レベルのサポート 障害発生時の状態を記録し原因を特定、長期間のサポート 31 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 商用データベースから Postgres Plus への移行時に起きたこと © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. オープンソース導入に対するお客様の課題 顧客社内にOSSのシステムを管理できる人材がいない点 ベンダー、SI事業者の保守・サポート体制が不安な点 SI事業者の保守・サポートが長期的に保証されない可能 OSS: オープンソースソフトウェア 33 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 保守があるから大丈夫。 思ったとおりに OSS DB 製品が動いてくれ ないけど? 仕様になります。 ワークアラウンドは xxxx になります。 保守 34 なるほど。それならい けそうだ。 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. お客様 保守があるけど本当に大丈夫? 思ったとおりに OSS DB 製品が動いてくれ ないけど? 仕様になります。 ワークアラウンドは xxxx になります。 保守 その方法だとうちの システムには合わない な。 問題を解決するためには、OSS DB 製品と 自社のシステム両方をよく知る必要がある。 35 どうしよう? © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. お客様 課題1: NOT NULL 列に空白スペースをロードできない 問題 • EDB*Loader で NOT NULL 制約が付けられた列に 空白スペースをロードできない 制御 ファイル 解決策 • お客様に提示済み データ EDB* Loader Postgres Plus Advanced Server 9.4 • 制御ファイル内の [NO] PRESERVE BLANKS を サポート予定 36 LOAD PRESERVE BLANKS ( comm ) © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 列 | 型 | 修飾語 ------+--------------+---------comm | character(1) | not null データ ベース 空白スペースを ロードできない 課題2: ロードしたデータが文字化けする 問題 • EDB*Loader で固定長のSJISファイルを ロードすると文字化けを起こしてしまう。 SJIS の固定長 edb=# 解決策 • お客様に提示済み 制御 ファイル edb=# select * from test; comm ---------------.:Xa ob 文字化け (1 行) データ EDB* Loader Postgres Plus Advanced Server 9.4 • 入力データのエンコーディングを 変更する仕組みをサポート予定 37 LOAD DATA CHARACTER SET ( comm ) © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. データ ベース 課題を解決するために 保守 お客様 データベースコンサルティングサービス お客様の、データベース製品に関する知識を補完します。 38 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. データベースコンサルティングサービスのメリット データベースに関するお客様のテクニカルな課題を、HPのデータベースエキ スパートがスムーズに解決いたします。 その結果、お客様は本来注力すべきビジネス課題に多くの時間をかけて 取り組むことができるようになります。 お客様が注力 テクニカルな ビジネス Elective 課題 課題 HPが解決 39 ビジネス課題 業務拡張 M&Aによる業務統合 競争力の強化 システム統合による コストダウン コンプライアンス対応 想定される技術的課題 アクセス数増加対策 システム統合、連携 低レイテンシー、 超高速化処理の実現 機器やソフトウェアの サポート終了 IT仮想化統合 セキュリティ対策 情報漏洩対策 災害対策 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. HPのソリューション パフォーマンス診断 問題点の洗い出し DB設計コンサルティング DB物理設計 OS、ストレージ設計 運用設計 パフォーマンスチューニング 移行コンサルティング 移行実現性検討評価 移行方式検討 まとめ © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. まとめ 大容量メモリを利用すれば、PostgreSQL/Postgres Plus でも容易に検索の高速化が 可能。 HP は、大容量メモリ及びx86サーバーでトップクラスの可用性を持つHP ProLiant DL580 Gen8 を提供。 データベースコンサルティングサービスを利用すれば、Postgres Plusであっても調査 や障害対応などに掛かる時間やコストを削減でき、安心して Postgres Plus の導入が 可能。 41 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 滝谷 誠 プリセールス統括本部 ソリューションセンター データベース・ソリューション部 日本ヒューレット・パッカード 株式会社 〒136-8711 東京都江東区大島2-2-1 Tel: 090-1435-4494 Mail: [email protected] Thank you! © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
© Copyright 2024 ExpyDoc