pub:2016.7.14/upd:2016.7.16

【要約】キャパシティプランニング

リソースを最大限に活かすサイト分析・予測・配置

「はじめに」にある以下の1文が印象的

Web運用の大部分はキャパシティプランニングとキャパシティ管理が占めています。
これはタスクではなくプロセスであり、多くのことなる要素で構成されます。

前職の先輩に長らくお借りしたままになっている(´・ω・`)
はやくお返ししなくては。

キャパシティプランニングのプロセス

以下の問いに答える過程でキャパシティプランニングの目標が設計される。

  1. 現行インフラがどの程度機能しているか?
  2. パフォーマンスを維持するために将来何が必要になるのか?
  3. リソースのインストールと管理をどのように実行するのか?

サービスは進化し、環境は変化するため、運用段階ではこの問いを繰り返すこと。

データに話をさせる

ビジネスにおいてはリソースの追加や維持は”投資”である。
投資には、妥当な予測を示すことが求められる。

予測に必要なのは計測や指標、さらに言えば数字やグラフである。

フィッティングの手法

2つの方針がある。

  • パフォーマンスのチューニング
  • リソースのスケール

目標設定

SLA(service levvel agreement)を定める

Webサービスにおいては可用性とパフォーマンスをSLAにおいて保障する。

  • 可用性 : 月間稼働率などを示す
  • パフォーマンス : ユーザエクスペリエンスの指標値を示す

計測点を定める

システムアーキテクチャを要素に還元して、ハードウェアコンポーネント単位で計測点を定め、必要なデータを取得する。

DBサーバの計測点

秒間のクエリ数の増加にともなって変化する計測点

  • INSERTクエリ数
  • UPDATEクエリ数
  • DELETEクエリ数
  • SELECTクエリ数
  • レプリケーションの所要時間

Webサーバの計測点例

秒間のリクエスト数の増加にともなって変化する計測点

  • リクエスト数
  • キャッシュヒット率
  • Apacheプロセス数

サービスレイヤでの計測点例

サービスの成長度合いを示す計測点

  • 写真のアップロード数
  • 写真のアップロード容量
  • ユーザ登録数
  • ログイン数
  • API利用率

各計測点がピーク出現の傾向とリソースへの影響知っておくこと必要。

スケーリング点を洗い出す

性能が上限に達しそうな時にスケーリングが可能な要素を洗い出しておく。

  • ディスクスループット
  • ディスクストレージ
  • CPU
  • RAM
  • NW

BCP(Business Continuity Plan)を定める

DR対応など、目標を達成するために必要な備えをしておくこと。

計測

計測は以下の目的で実施する。

  • データの記録と保存
  • 指標の作成
  • 指標の比較

指標の収集の実際

データの集約サーバと計測エージェントを用いるタイプのツール利用が基本となる。

予測

時系列情報をグラフの横軸にしてインフラレイヤとサービスレイヤの計測結果を比較。施策を打ち出す。

一時的な負荷への対応

サービスレイヤのイベントなどで一時的な高負荷が予想される場合、リソースをスケールする以外にも以下の対応を取ることが出来る。

  • キャッシュを活用する
  • コンテンツを静的にする
  • 負荷の高い機能を停止する

調達

リソースの配置に必要な期間を見積もること。

配置

以下の理想形を目指してシステムを構築する。

  • すべての変更を1台の管理サーバで行う
  • 管理のために個々のサーバにログインしない
  • 新しいサーバは自動的に稼働する
  • サーバの構成は一貫性を保つ

サーバ構成ののシンプルな一貫性

サーバの役割を定義して、「基本構成 + 役割別構成」のように組み合わせる方針が推奨される。

REFERENCE

Leave a Reply

Your email address will not be published.