頭の片隅に置いておきたい アプリ開発を成功させる「10のメトリクス」:アプリがどれだけビジネスに貢献するかの判断指標になる
ポール・ナシャワティ氏はWebメディア「TechTarget」にて、アプリケーションのパフォーマンスを測定する10の指標(メトリクス)について解説した。同氏は「アプリケーションの成功は、適切なメトリクスの選択にかかっている」と語る。
ポール・ナシャワティ氏は2022年7月22日(米国時間)、Webメディア「TechTarget」にてアプリケーションのパフォーマンスを測定する10の指標(メトリクス)について解説した。同氏は「パフォーマンスメトリクスはアプリケーションがビジネスにどれだけ貢献するかを判断し、改善のための方針を明確にするために不可欠だ」としている。
ナシャワティ氏が紹介するメトリクスは以下の10個だ。
1.CPU使用率
CPU使用率は、アプリケーションの応答性に大きな影響を与える。CPU使用率が急増している(スパイクしている)場合、アプリケーションの処理に時間がかかっており、応答性が低下していることを示している。スパイクは「パフォーマンスのバグの兆候」と見なすべきだ。
2.メモリ使用量
メモリ使用量も重要な指標だ。メモリ使用量が多いということは、サーバリソースを過剰に消費している可能性がある。ナシャワティ氏は「メモリ使用量を監視する際には、ページ障害とディスクアクセス時間に注意する必要がある」と指摘している。
3.1分当たりのリクエスト数とリクエスト当たりのバイト数
APIが1分当たりに受信するリクエスト数と、各リクエストのバイト数を追跡することで、サーバがさまざまな負荷の下でどのように動作するかを判断するのに役立つ。アプリケーションが全てのリクエストで処理するデータの量を追跡することも同様に重要で、過剰な要求やデータ処理はパフォーマンスを低下させる要因になり得る。
4.レイテンシと稼働時間
ここでいうレイテンシは、アプリケーションに対するユーザーのアクションと、そのアクションに対するアプリケーションの応答との間(遅延)を指す。レイテンシが高いと、アプリケーションの読み込み時間に直接影響し、ユーザーエクスペリエンスを悪化させる要因となる。
5.セキュリティの露出
アプリケーションがどのようなセキュリティ技術で保護されているか、また、どの部分が公開状態になっているかを確認する。それと共に、セキュリティの脆弱(ぜいじゃく)性や対策の効果を評価し、セキュリティの改善計画を策定する必要がある。
6.ユーザー満足度/Apdexスコア
ナシャワティ氏は「アプリケーションパフォーマンスインデックス(Apdex)は、応答時間を測定するための重要な基準だ」としている。これは端的に言うとユーザーの満足度を示すスコアで、応答時間がユーザーにどの程度影響を与えるかを評価する。例えば、T時間をしきい値とすると、T時間以内に完了した全ての応答は、ユーザーを満足させたと見なせる。逆にT時間以上の応答は、ユーザーに不満を与えることになる。
Apdexスコアは計算式で算出できる。「SC」を満足、「TC」を許容、「FC」を不満、「TS」はサンプルデータ数とすると、以下の式で表される。
Apdex =(SC + TC / 2 + FC×0)/ TS
例としてサンプルデータが100個あり、満足の応答時間が65件、許容が25件、不満が10件だとする。
Apdex = (65 + (25/2) + (10 × 0))/100
この例の場合はApdexスコアは0.775となる。
7.平均応答時間
平均応答時間は、特定期間内の全ての要求について応答時間の平均値を取ることで算出できる。平均応答時間が低いほどパフォーマンスが高いことになる。
8.エラー率
特定の時間内のリクエスト総数に対するエラーリクエストの割合で算出できる。エラー率が急増している場合、大きな問題の兆候であり、早急な対応が必要だ。
9.ガベージコレクション:
ガベージコレクション(GC)の性能を監視する。GCのパフォーマンスは以下のメトリクスで定量化できる。
GCハンドル
アプリケーションで作成されたオブジェクト参照の総数をカウントする。
GCサイクルの時間間隔
前回のGCサイクルからの経過時間の割合を見る。
GCの停止時間
GCサイクル中にアプリケーション全体が一時停止する時間を測定する。
GCスループット
アプリケーションがGCに費やさなかった合計時間の割合を測定する。
オブジェクトの作成と再生率
インスタンスがアプリケーションで作成または再利用されるレートの尺度を測定する。なお、オブジェクトの作成率が高いほど、GCサイクルの頻度が高くなるので、CPU使用率の増加につながる。
10.リクエストレート
リクエストレートはアプリケーションで発生するトラフィックの増減に関する分析情報を提供する重要なメトリクスだ。他のアプリケーションパフォーマンメトリクスと相関させて、アプリケーションがどのように拡張できるかを判断できる。
ナシャワティ氏は「アプリケーションのメトリクスを適切に測定することで、一見無意味な技術情報が分かりやすくなり、システムの信頼性を明らかにできる。また、ユーザーエクスペリエンスの洞察が得られる」と述べている。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
「Docker Desktop」バージョン4.22公開 ネットワーク速度4倍、メモリ使用量半減などパフォーマンスを改善
Dockerは「Docker Desktop」の最新バージョン4.22の公開にあわせて、パフォーマンスがどう改善されてきたのか解説した。Javaの「いま」を見る 人気バージョン、ベンダー、新しい動きは? New Relic年次調査
New Relicは「2023 State of the Java Ecosystem Report」を発表した。Javaシリーズで採用率の高いバージョン、人気ベンダー、コンテナ化、ガベージコレクションの利用状況を解説した。GitHub、個人アカウントにプッシュ保護設定を追加 管理者向けのメトリクス機能も
GitHubは、シークレットの漏えい防止を支援するプッシュ保護機能の強化を発表した。個人アカウントにプッシュ保護の設定が追加され、組織の管理者はプッシュ保護の統計を確認できる。