[20070228-hoshino] DEWS2007 E2-7 データベース構造劣化によるOLTP性能低下に関する一考察 データベース構造劣化による OLTP性能低下に関する 一考察 東京大学 星野 喬、合田 和生、喜連川 優 2007年2月28日 Kitsuregawa Laboratory Confidential. © 2007 Kitsuregawa Laboratory, IIS, University of Tokyo. 1 [20070228-hoshino] DEWS2007 E2-7 データベース構造劣化によるOLTP性能低下に関する一考察 概要 背景と目的 MySQLにおけるTPC-Cベンチマーク構造劣化分析 アクセスパタンに適応的な構造劣化抑制戦略の検討 まとめ Kitsuregawa Laboratory Confidential. © 2007 Kitsuregawa Laboratory, IIS, University of Tokyo. 2 [20070228-hoshino] DEWS2007 E2-7 データベース構造劣化によるOLTP性能低下に関する一考察 背景と目的 背景 – OLTPは基幹系業務で不可欠な処理方式 – データベースシステムの常時運用ニーズの高まり – データベース更新データベース構造劣化 アクセス性能低下 B+Tree構造においては 充填率低下、クラスタ化度低下、木の高さ増大、など 構造劣化に対する2つの補完的なアプローチ – (従来): 再編成によって性能を回復させるアプローチ – (提案): 構造劣化の進行を抑制することで性能低下を遅らせるアプローチ 目的 – OLTP性能を低下させる構造劣化の分析 – 構造劣化の進行を抑制するデータ更新戦略の検討 Kitsuregawa Laboratory Confidential. © 2007 Kitsuregawa Laboratory, IIS, University of Tokyo. 3 [20070228-hoshino] DEWS2007 E2-7 データベース構造劣化によるOLTP性能低下に関する一考察 TPC-Cベンチマーク TPC によるOLTPベンチマークのデファクトスタンダード 卸売会社におけるオンライントランザクションをシミュレート – – – – – New-order(注文) Payment(支払) Delivery(配達) Order-status(注文確認) Stock-level(在庫確認) Entity-Relationshipダイアグラム Kitsuregawa Laboratory Confidential. © 2007 Kitsuregawa Laboratory, IIS, University of Tokyo. 4 [20070228-hoshino] DEWS2007 E2-7 データベース構造劣化によるOLTP性能低下に関する一考察 TPC-Cトランザクションの表アクセス一覧 Table Trn NewOrder Warehouse District Customer Select Select Select Order Orderline Neworder Insert Insert Insert Update Select Select Item Stock Select Select Update Select Insert Payment Update Update Update Select Orderstatus Select Select Select Select Delivery Select Delete Update Stocklevel History Select Update Update Select Kitsuregawa Laboratory Confidential. © 2007 Kitsuregawa Laboratory, IIS, University of Tokyo. Select 5 [20070228-hoshino] DEWS2007 E2-7 データベース構造劣化によるOLTP性能低下に関する一考察 使用ソフトウェア設定 実験設定 MySQL ver. 5.0.22-mon Database Engine InnoDB データベースシステム Buffer cache size 16MB OS ver. Redhat Linux WS3.0 Kernel ver. 2.4.21-40.EL.smp Benchmark TPC-C rev.5.6 – MySQL InnoDB v5.0 – クラスタ表(B+Tree)を用いて表を作成 TPC-Cデータ – 4GBの表空間をrawデバイス上に確保 – TPC-Cウェアハウス数16 初期ロード後使用空間約1.6GB OLTP負荷 – アクティブウェアハウス数16 – ウェアハウス辺り5スレッドにて並列実行 3% 3% 4% Payment 各スレッドは確率的に トランザクションを選択 – 10万トランザクション実行 New-Order 45% 45% Delivery Order-status Stock-level トランザクション実行比率 Kitsuregawa Laboratory Confidential. © 2007 Kitsuregawa Laboratory, IIS, University of Tokyo. 6 [20070228-hoshino] DEWS2007 E2-7 データベース構造劣化によるOLTP性能低下に関する一考察 実験環境 Xeon 3.2GHz x2 2GB Memory Emulex LP8000 (1GbpsFC) x2 via two PCI-X 133MHz bus Firmware version: 3.93a0 Driver version: 7.3.6 Fibre Channel Switch (1Gbps) Kitsuregawa Laboratory Confidential. © 2007 Kitsuregawa Laboratory, IIS, University of Tokyo. 1 3 2 4 Seagate Cheetah Model: ST318203FC Spec: 18GB 10000rpm SoftwareRAID0: 4disks, 64kb chunk 7 [20070228-hoshino] DEWS2007 E2-7 データベース構造劣化によるOLTP性能低下に関する一考察 トランザクション応答時間分析 warehouse, district New-order warehouse, district Payment Order-status 先に実行されるSQL(群) が棒グラフの下 (Deliveryに関しては ループ内の結果を合計) Order表アクセス性能 低下を確認 (Buffer cache 16MB) Delivery Stock-level Kitsuregawa Laboratory Confidential. © 2007 Kitsuregawa Laboratory, IIS, University of Tokyo. 8 [20070228-hoshino] DEWS2007 E2-7 データベース構造劣化によるOLTP性能低下に関する一考察 充填率低下による性能低下 Order表に対するアクセス Order表のデータページ – New-Orderがinsert order id順 – Deliveryがselect, update データ量は同じ、ページ数は倍 order id順 new_order表に存在している分だけNew-Orderよりも遅れて実施 充填率低下によるIO数増加 – 初期ロード時のOrder表の充填率はほぼ1 – New-Orderによるinsertデータは充填率が低下(page splitにより 約1/2) – 一連のDeliveryはクラスタ鍵順にOrder表にアクセスするため、トラ ンザクションあたりに読み込まなければならないページ数が増大 IOPS増大 Kitsuregawa Laboratory Confidential. © 2007 Kitsuregawa Laboratory, IIS, University of Tokyo. 9 [20070228-hoshino] DEWS2007 E2-7 データベース構造劣化によるOLTP性能低下に関する一考察 Order表の充填率 (w_id,d_id)=(1,1) (1,2) 連番アクセスでIO数2倍 … Order表のクラスタ鍵(w_id, d_id, o_id) 表空間は実験1のloop5直前のもの Kitsuregawa Laboratory Confidential. © 2007 Kitsuregawa Laboratory, IIS, University of Tokyo. 10 [20070228-hoshino] DEWS2007 E2-7 データベース構造劣化によるOLTP性能低下に関する一考察 使用ソフトウェア設定 実験設定 MySQL ver. 5.0.22-mon Database Engine InnoDB データ Buffer cache size 4MB~96MB OS ver. Redhat Linux WS3.0 Kernel ver. 2.4.21-40.EL.smp Benchmark TPC-C rev.5.6 – 4GBの表空間をrawデバイス上に確保 – TPC-Cウェアハウス数16 初期ロード後使用空間約1.6GB トランザクション – アクティブウェアハウス数16 – ウェアハウス辺り5スレッドにて並列実行 各スレッドは確率的に トランザクションを選択 – 計10万トランザクション実行 0% 0% New-Order 6% Payment パラメータ – データ更新するトランザクションのみ選択 – バッファサイズを変化させてIOPSを測定 表、索引毎にIOPSを取得するように MySQLを修正 実験ID: RES.clst.wi.W16.B*M.trn6.auto4 Kitsuregawa Laboratory Confidential. © 2007 Kitsuregawa Laboratory, IIS, University of Tokyo. Delivery 47% 47% Order-status Stock-level トランザクション実行比率 11 [20070228-hoshino] DEWS2007 E2-7 データベース構造劣化によるOLTP性能低下に関する一考察 各表、索引におけるIOPS Buffer cache 4MB 32MB 8MB 64MB Kitsuregawa Laboratory Confidential. © 2007 Kitsuregawa Laboratory, IIS, University of Tokyo. order表の変化が顕著 :充填率低下によるIO増加 16MB 96MB 12 [20070228-hoshino] DEWS2007 E2-7 データベース構造劣化によるOLTP性能低下に関する一考察 考察 充填率低下によるOrder表アクセスのIOPS増加を確認 – バッファキャッシュが小さいときのみIOPS増加を観測 – バッファキャッシュが十分大きいときは、New-Orderでinsertされたデータが Deliveryでアクセスされるまでキャッシュから追い出されないため、IOが増え ないと思われる – 鍵値に対してシーケンシャルアクセス 一連のトランザクションがクラスタ鍵順にデータを挿入、参照、更新 構造劣化によるOLTP性能低下 – 1トランザクションだけ見ていてもアクセスするデータが少ないケースがほとんど であるため、構造劣化とは関係ないように当初は思われた クラスタ化度低下は起きているが、OLTP性能低下への影響は観測されず – 一連のトランザクションがデータ配置と特定の相関を持つとき、構造劣化に起 因する性能低下がトランザクション処理においても観測される 特定領域の充填率低下 特定領域にトランザクションが集中 バッファキャッシュが少ない場合、IO増加によりトランザクションあたりのレスポン スタイム増加 Kitsuregawa Laboratory Confidential. © 2007 Kitsuregawa Laboratory, IIS, University of Tokyo. 13 [20070228-hoshino] DEWS2007 E2-7 データベース構造劣化によるOLTP性能低下に関する一考察 B+TreeのPage split における 充填率調整 従来(InnoDB)の戦略 insert 目標充填率94% 目標充填率50% –検知: ページ内で最大鍵値レコードが 連続して起きている場合、シーケンシャ ルインサートだと判断 –戦略: split時にシーケンシャルイン サートと見なせるときは15/16:1/16 で分割 –データロード時に有効 問題点 –複合鍵のクラスタ表においては、 B+Treeの途中においてもシーケン シャルインサートが起き得る –現在のMySQL InnoDBではそれを 検知できずに、通常の1/2:1/2分割を 実行してしまう Kitsuregawa Laboratory Confidential. © 2007 Kitsuregawa Laboratory, IIS, University of Tokyo. 14 [20070228-hoshino] DEWS2007 E2-7 データベース構造劣化によるOLTP性能低下に関する一考察 B+TreeのPage split における 充填率調整 –cont. シーケンシャルインサート中のレコードよりも大きい鍵値を持つレコード集合 シーケンシャルインサート中のレコードよりも小さい鍵値を持つレコード集合 対処法 insert insert expected next insert –検知: ページに対して、最後に挿入さ れた鍵値を保持し、次の挿入がページ 内で連続した鍵値のレコードだったら、 シーケンシャルアクセスであると判断 –戦略: split時にシーケンシャルアクセ スを検知した場合、挿入行よりも鍵値 が大きいレコードは新ページに分配し、 そのようなレコードがない場合は任意 の充填率で分配 利点 –目標充填率をアクセスパタンによって 変更することで充填率低下を抑制可能 Kitsuregawa Laboratory Confidential. © 2007 Kitsuregawa Laboratory, IIS, University of Tokyo. 15 [20070228-hoshino] DEWS2007 E2-7 データベース構造劣化によるOLTP性能低下に関する一考察 今後の予定 アクセスパタンと構造変化との定量的な関係を評価 – シーケンシャルアクセス比率と構造変化量の関係 – データ増加量と構造変化量の関係 アクセスパタンのモデル化と、その観測手法の確立 充填率調整手法におけるトレードオフの考察、評価 – データ更新(insert, delete, update)時のオーバーヘッド – 構造劣化の抑制効果 再編成戦略も含めてどのような戦略が良いかを検討 Kitsuregawa Laboratory Confidential. © 2007 Kitsuregawa Laboratory, IIS, University of Tokyo. 16
© Copyright 2024 ExpyDoc