キャパシティ改善とは
「キャパシティ」という言葉を聞いたことがあるでしょうか? キャパシティとは一般的に、「許容量」を意味する言葉です。この言葉をシステムについて使用する場合は、そのシステムが持つ性能の許容量を指します。つまり、そのシステムがどのくらいのアクセス数に耐えられるかを表す言葉になります。さて、今回のテーマは「キャパシティ改善」ですが、では一体なぜキャパシティを改善する必要があるのでしょうか。それは、アクセス数が増減するシステムでは、その要求がシステムのキャパシティを上回ってしまう場合があるからです。
たとえば、あなたはオンラインショッピングサイト「せいのう.jp」を運営しているとします。「せいのう.jp」はサイト開始以来予想外の大好評で、お客様のアクセス数が月に1000人の勢いで増加しており、現在では月に5,000人のアクセス数があります。このような事態を想定していなかったあなたは、最大でも月に10,000人のアクセス数を想定し、システムを構築していました。さて、5ヵ月後このシステムはどうなってしまうでしょうか。
どうなるかというと、レスポンスタイムが遅くなります。システムのキャパシティ以上にアクセスが来ると、システムがアクセスに耐えられず、お客様に処理結果を返す時間が長くなってしまい、結果、レスポンスタイムが遅くなってしまうのです。さらに厄介なことに、レスポンスタイムは、システムのキャパシティを超えると、指数関数的に遅くなる特徴があるため、今までは3秒程度だったレスポンスタイムが、30秒、1分、5分と急激に遅くなっていきます。アクセス数とキャパシティ、レスポンスタイムの関係を図1にまとめます。
このようになってしまったサイトにアクセスしたお客様は、一体どう思うでしょうか。私なら処理の遅さに耐えきれず、サイトへのアクセスをやめてしまうでしょう。おそらく、お客様も同じ感想を持つはずです。
では、こうならないためにはどうすればよいのでしょうか。その答えがキャパシティ改善です。予想していなかったシステムへのアクセス数に耐えられるよう、システムのキャパシティを改善するのです。
キャパシティ改善のゴール
キャパシティを改善させるといっても闇雲に改善させてはいけません。必要以上の強化は余計なコストを生んでしまいます。
では、どのくらいキャパシティを改善させればよいのでしょうか。通常は「目標レスポンスタイムを満たした状態で、システム使用終了日までシステム運用できる状態」を維持できる程度に、キャパシティを改善させればよいと考えます。基本的には、どのようなシステムにも寿命がありますので、システム使用最後の日まで問題なくシステムが運用できればよいのです。これをキャパシティ改善のゴールとします。キャパシティ改善前と後の性能の差を図2にまとめます。
キャパシティ改善の流れ
それでは、キャパシティ改善の流れを見ていきましょう。基本的には「キャパシティ改善計画」「キャパシティ改善実施」「効果確認」の3つのPDCサイクル(※)を回し、システムのキャパシティを改善させていきます。以下、それぞれについて説明します。
- キャパシティ改善計画
キャパシティ改善計画では、大きく分けて「分析」「対策立案」の2つのフェーズを実施します。
分析フェーズでは、システムの現状や、システムの予想される将来の状況から、現状の構成でシステムを運用した場合の将来の性能を計算します。対策立案フェーズでは、この結果をもとに、キャパシティ改善の目標決定や、具体的な改善方法の検討、サーバサイジングを実施し、キャパシティ改善の実施内容を決定します。具体的な説明は次回以降で説明します。
- キャパシティ改善実施
キャパシティ改善計画で決定した実施内容で、キャパシティ改善を実施します。具体的には、新しいサーバやCPU等を購入し、稼働中のシステムを一時停止させ、サーバの増強、もしくはソフトウェアのチューニングのみを実施します。このフェーズは基本的に計画通りに作業を行うだけであるため、今回の説明からは割愛させて頂きます。
- 効果確認
キャパシティ改善の実施後、システムが計画通りのキャパシティを保持しているかを確認します。基本的には、「性能試験」「システム稼働中の性能監視」の2種類の方法で確認します。確認した結果が計画通りであれば成功です。万が一、計画通りの性能向上が見込めなかった場合、または更なるアクセス数の増加により、またキャパシティが足りなくなった場合は、再度、キャパシティ改善計画からPDCサイクルを回す必要があります。具体的な説明は以降の回で説明します。
図3に、キャパシティ改善の流れをまとめます。
今回はキャパシティ改善の内容やゴール、流れについて説明しました。次回第2回では、キャパシティ改善の最初のステップであるキャパシティ改善計画の分析フェーズについて、詳しく説明していきます。