チューニングサイクルについての解説
データベースのチューニング作業は一過性のものではなく、性能を維持管理する限りは継続して行うことが必要です。なぜならIT資源はデータ量の増加等日々変化しているので、性能も日々変化すると考えるのが妥当です
チューニングサイクルとは
データベースのチューニングとは、データベースの性能におけるボトルネックを見つけ出し、改善することで、性能を維持・向上することです。チューニングサイクルとはどういうものでしょうか?ボトルネックとは何らかの理由で処理が遅く、詰まった状態の部分を言います。チューニングは一度行えば終了ということはありません。さらにボトルネックは移動(変化)します。つまり問題の大きいボトルネックを改善すると、次に問題の大きいボトルネックが明らかになってくるからです。交通渋滞に似ています。一つの交差点の渋滞が解消されると、どこか次の交差点がボトルネックになるということです
チューニングの手順
データベースをチューニングする場合、次のような手順になります
1.目標(非機能要件)の確認
非機能要件の性能(レスポンス時間やスループット)を確認する。例えば、レスポンス時間が5秒以内等
2.現状の分析
現在の性能や環境(ハードウェア、ソフトウェア、アプリケーション等)の状況を確認します。Oracleチューニングの場合、AWRレポート、STATSPACK、アラートログ、トレースログ等で分析する
3.仮説の立案
現状分析の結果から、ボトルネック(問題)の仮説を立てる(いわゆる問題箇所のあたりを付ける)
4.対策の検討
そのボトルネック(問題)の根本原因を突き止める、対策を立てる
5.検証の実施
そのボトルネック(問題)の根本原因と解決策の技術的な検証をする
6.仮説検証の分析
ボトルネック(問題)の仮説が正しかったことを技術的な論点で分析、整理する
7.リスク分析
解決策が実現可能かどうかを検討し他に与える影響、リスクを分析します。リスクは発生確率と影響度によって、リスク保有、リスク転嫁、リスク低減、リスク回避に分類して分析する
8.改善提案
今までの経緯もあることから、それらを踏まえ分析結果を提案という形でまとめる
9.改善の承認
ステークホルダーに対して承認を得る
10.改善の実施
改善提案に基づいて改善を実施する(もしくは、担当部門で実施する)
11.改善結果検証・評価
仮説検証と同様のアプローチで検証し、結果を評価する
12.改善結果報告
仮説と実証について報告(レポート)を作成し報告する
このチューニングサイクルを問題ボトルネックがなくなるまで繰り返します
このサイクルは、チューニングだけではなく、問題解決のアプローチ全般に言えることです