大容量メモリーを搭載した HP ProLiantサーバーでの

大容量メモリーを搭載した
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.