TOP
>
比較データ
> 測定に至るまでに発生したトラブル
オープンソースソフトウェアの性能・信頼性評価手法
第5回:DBT-1によるMaxDBの評価
著者:
住商情報システム 福井 浩次
2005/6/13
前のページ
1
2
3
4
測定に至るまでに発生したトラブル
OSDL DBT-1は、ソースだけでなく実行結果もOSDL-Jのサイトにて公開されている。また、SAP DBからMaxDBに変更するにあたり、SQL構文上の違いはなかった。しかしMaxDBで動作させるためには、いくつかの修正を必要とした。それをまとめたのが表3である。
モジュール作成
SAP DB版の保守が停止しており、configureやソース中にPostgreSQL用のコードが直接書かれていた。条件分岐を追加することで対応。
DB作成
特定のスキーマに特定のパターンのデータをロードした際、正しくロードできなかった。ロードプログラムのバグと考えられたが、プログラムの修正まで待てないため、データ生成側を修正。
仮想ユーザ接続インターバル計算
ナノ秒まで計算していたが、正しく計算できていなかったため、スリープがエラーを起こしインターバルがなかった。ちなみに、カーネル2.4系と2.6系のディストリビューション間では異なった計算結果が得られた。計算式を修正して対応。
オープン可能なファイル数
socketオープン時に発生。システムパラメータを拡張して対応。
スレッドスタックサイズ
仮想ユーザ数を増やしていくと発生。pthread_attr_setstacksize()でサイズを調整した。ただし書籍などで調べると「通常はこの機能は必要ない」とのこと。DBT-1は例外らしい。
セマフォ
MaxDB固有の現象。サーバとの接続時に不足したため拡張。
ストアドプロシージャ
測定中CPUの負荷が徐々に低下する現象が発生。調査の結果、ストアドプロシージャ内で呼び出す関数との連携が正しく行われていなかった。関数を外に出すことで対応。
表3:MaxDB対応への修正
以上の障害への対策を施して、ようやく測定に漕ぎ着けた。DBT-1はほとんどメンテナンスされていなかったためこのような事態になったと思われる。個人的にDBT-2を試した事があるが、このような事態にはならなかったことを付け加えておく。
評価結果
評価は、DBパラメータがデフォルトの状態とチューニングした状態の2種類と、カーネルバージョン2.4系(2ディストリビューション)と2.6系(1ディストリビューション)の組み合わせで実施した。これらの結果について、代表的な例を以下に記述する。
DBパラメータの効果
RDBMSの種類にもよるが、デフォルトで設定されているパラメータは、多岐多様なシステムで稼働させるため、なるべくリソースを消費しないような値にしている場合がある。MaxDBもデフォルトではリソースを消費しない設定となっている。それだけに、チューニング効果は非常に大きいものとなる。
MaxDBとappServer間の接続数を拡張すると、多くのインタラクション応答時間で30%程度のレスポンス向上が見られた一方で、3倍以上遅くなるインタラクションもあった。最終的には他のパラメータも拡張することで、チューニング前の値まで戻す事ができた。
MaxDBのキャッシュは、デフォルトサイズ(80MB)でも90%弱のヒット率を示したが、拡張後(400MB)は90%半ばまで上がる事が確認できた。この差自体は小さく見えるかもしれないが、1SQLあたりのI/O数が半分近く下がっていることがMaxDBのログから読み取れ、実際には非常に効果があることがわかる。
MaxDBでは、データボリュームを分割することでパフォーマンスを向上させる事が可能であるが、今回の構成(DISK2台によるRAID0)では効果はなかった。
図2は、チューニング前後の仮想ユーザ数別BT/秒をグラフ化したものである。仮想ユーザは1200で頭打ちとなっている。このときのCPU消費率が90%以上となっていたためこの値が限界と思われるが、DISKをRAID0構成としたため、若干のオーバーヘッドがあると考えられる。余裕があれば追加調査を実施したいところ。
図2:仮想ユーザ別BT/秒の推移
図3は、インタラクション応答時間の平均値を比較したものである。チューニングの効果は一目瞭然である。BuyConfirm(あるいは類似のトランザクション処理)の更なる改善方法を探る事が、MaxDBのチューニングに際して今後の課題となるであろう。
図3:インタラクション応答時間
Linuxカーネル2.4と2.6の比較結果
図4は、カーネル2.4と2.6の比較である。高負荷になるほど差が顕著に現れることがわかる。今回の評価では、グラフまでは掲載していないが、カーネル2.6では1800仮想ユーザまで計測を行った。グラフの伸びはほとんど見られなかったが、きれいな曲線となった。カーネル2.4では1000を超えると急に伸びが停滞する不安定な面が見られた。
図4:カーネルバージョン比較
しかし昨今のプレス発表から、カーネル2.6ベースのシステムが主流となりつつあるので、今後新規に構築するシステムではさほど心配する必要はないのかもしれない。
OSDL DBT-1(MaxDB版)のまとめ
今回のDBT-1によるMaxDBの評価では、まずSAP DBに関するメンテナンスが中断されていた状態のDBT-1を最新版であるMaxDBに対応させた。今後は、ストアドプロシージャを使用しないSQLによるDBアクセスを実装することで、より汎用性の高い有用なプロダクトに育てる事ができるであろうとの結論に達した。
前のページ
1
2
3
4
著者プロフィール
住商情報システム株式会社 福井 浩次
平成4年中途採用にて入社。その昔VAX11-780にてはじめてBSDに触れて以来、UNIX系OSのサポートや、ニッチなアプリケーション開発を業務の中心とするが、時々デバイスドライバを作っていた時代を懐かしく思い出す事がある。現在は生産技術センターに所属し、OSSの評価、社内への啓蒙に取り組んでいる。
INDEX
第5回:DBT-1によるMaxDBの評価
はじめに
使用プロダクト
評価手順の概要
測定に至るまでに発生したトラブル