Unit 10-04(STAGE 10 の 4 / 8)

性能をどう確認するのか

学習状況:未着手

このユニットの結論

性能の確認では、「速いかどうか」を測る前に、「どの条件で、何を、何秒以内にすべきか」を決めておく必要があります。

条件をそろえずに測った結果は、目標を満たしたかどうかの判断に使えません。

1. 何の話か

このユニットは、性能テストの話です。

性能とは、一般的に、

のことを言います。

2. なぜ必要か

開発中の環境では、データが少なく、使う人も少ないため、たいていの画面は速く動きます。

ところが本番では、

といった条件が重なります。開発中の速さは、本番の速さを保証しません。

3. このユニットで分かること

4. 性能テストで決めておく条件

条件 例(一般的な説明)
対象 どの画面・処理・連携か
目標 何秒以内、1時間に何件、など
データ量 本番と同じくらいのデータ量か
利用の状況 普段の利用か、利用が集中するときか
同時に動くもの 夜間処理や連携が同時に動いているか
測り方 何回測り、どの値(平均・最大など)で判断するか

目標は、非機能要件として決めたものを使います(06-01 非機能要件とは何か)。目標と条件がそろって、初めて合否が決まります。

CASE FACTFROZEN正本に記載されたアステリア案件の事実

アステリア案件に関係する記載

  • 約120人規模のプロジェクト、10年分のデータ移行
  • システムに SYS-11 監視・ログ基盤がある
  • 成果物に TST-005 性能試験結果報告書、REQ-003 非機能要件一覧がある
  • 危機演習に CR06 性能目標2秒に対して32秒がある

アステリア案件の性能テストの計画・条件・結果は、正本に記載がありません。未確定 危機演習 CR06 の数値や原因は、このユニットでは扱いません。

5. THINK — 開発環境では速かった

ある一覧画面は、開発環境では1秒もかからずに表示されました。

問題

この結果で、「性能の目標を満たした」と報告してよいでしょうか。

判断例を開く

判断

報告できません。

確認すること:

  • 開発環境のデータ量は、本番と比べてどうか
  • 利用が集中するときの条件で測ったか
  • 同時に動く処理や連携を、再現したか
  • 目標は、どの条件で満たすことになっているか

条件が違う測定は、別の数字です。

6. 性能の問題が見つかったとき

性能の問題が見つかったら、一般的には、

原因を決めつけて直す前に、測定の結果で確かめます。

7. よくある失敗

8. 成果物との接続

危機演習 CR06 性能目標2秒に対して32秒 では、性能の問題が見つかった場面を体験します(学習上の接続です。正式な対応関係ではありません)。

9. AI WORKFLOW — 測定の記録を整理させる

AIは、性能テストの記録やログから、時間のかかっている箇所の候補を整理するのに役立ちます。

指示例:

「次の性能テストの記録を、条件(データ量・同時利用・同時に動いた処理)ごとに整理し、目標を満たしていない測定を挙げてください。原因は断定せず、追加で測るべき箇所の候補として示してください。」

10. REVIEW — AIの整理を確認する

  • 条件の違う測定を、同じものとして比べていないか
  • AIが原因を断定していないか
  • 目標の値を、AIが一般的な値で置き換えていないか

ADVANCED深掘り — 実務者向けに一段深く

深掘り — パーセンタイルと、負荷の型

平均では隠れる

100 回のうち 99 回が速く、1 回だけ極端に遅いとき、平均は小さく見えます。しかし遅い 1 回に当たった利用者には、平均は関係ありません。そこで、速い順に並べて 95 番目の値(p95)や 99 番目の値(p99)で見ます。目標は「p95 で 3 秒以内」のように、どの位置の値かを添えて書きます。

負荷の型を先に決める

負荷には型があります。いつもの量(定常)、日や月の山(ピーク)、一斉に押し寄せる量(突発)。どの型を試験するかを先に決めます。ピークが定常の何倍かは、業務のカレンダー(締めの日、給与の日、期末)から見積もります。

データの量を本番に近づける

件数が 10 倍になると、遅さが 100 倍になる処理があります。少ないデータで速くても、本番の件数では使い物にならないことがあります。本番相当の件数で試すか、試せないなら「何件で試したか」を結果に必ず添えます。

どの段が遅いかを分ける

遅いのは画面か、処理か、データベースか、連携の相手か。段ごとに時間を測れる仕組みを、試験の前に用意します。また、試験環境と本番の違い(台数、データ量、外部接続)を結果に添えないと、結果の読み方を誤ります。

現場で確かめる問い

  • 性能の目標は、平均か、p95 や p99 か。どの位置の値かが書かれているか
  • ピークは定常の何倍と見積もったか。その根拠は業務のカレンダーにあるか
  • 試験のデータの件数は本番の何割か。結果にその件数が添えられているか
  • 遅いときに、画面・処理・データベース・連携のどの段かを分けて測れる仕組みがあるか

アステリア案件の性能の目標がどの位置の値で書かれ、どの型の負荷で試験されたかは、正本に記録がありません。記録なし

11. 人間が判断すること

  • 性能の目標と、満たすべき条件
  • 目標を満たさない場合に、直すか、条件を見直すか、業務で回避するか
  • 性能の結果を受けて、次の工程へ進んでよいか

12. 判断演習

「一覧画面は5秒以内に表示されること」という目標があるとします(教材上の例です。アステリア案件の目標値ではありません)。

この目標を性能テストで確かめるために、決めておく条件を上の表に沿って書き出してください。

あなたの記録あなたの考え。事実ではありません

判断ノート

既定では保存しないため、ページを離れると消えます。

このユニットで覚えてほしいこと

性能は、目標と条件をそろえて測ります。

問題が見つかったら、推測ではなく測定で、どこで時間がかかっているかを確かめます。

次に読むもの

本文で参照している成果物:TST-005 性能試験結果報告書、REQ-003 非機能要件一覧、OPS-002 監視・アラート一覧

関連成果物:未確定(baselineに対応表なし)

関連危機演習:未確定(baselineに対応表なし)

学習状況

状態:未着手