システム監視に必要なパーセンタイル(Percentile)の基礎知識

システム監視に必要なパーセンタイル(Percentile)の基礎知識

はじめに

現代のシステム監視において、平均値だけでは捉えきれないパフォーマンス課題を発見するため、パーセンタイルが重要な役割を果たしています。本記事では実際のシステム監視ケースを交えながら、パーセンタイルの正しい理解と活用方法を解説します!

パーセンタイルとは

パーセンタイル(Percentile)は、データセットを昇順に並べた際に特定の割合のデータが収まる境界値を示す指標です。システム監視では主にレスポンスタイム分析に活用されます。

主要パーセンタイルの解説

例えば、あるWebサービスのレスポンスタイム(応答時間)を測定した場合、以下の結果になったことを想定してそれぞれ説明します。

レスポンスタイム(ミリ秒): 10, 15, 20, 25, 30, 35, 40, 45, 50, 100

50パーセンタイル(中央値/Median)

  • データの中央値を表す
  • 計算方法
    • (n + 1) × 0.5 番目の値
    • 上記例:(10 + 1) × 0.5 = 5.5番目 → 30と35の平均値 32.5ミリ秒
  • 意味
    • 50%のリクエストが32.5ミリ秒以下
  • 活用例
    • サーバーの通常負荷状態の把握

95パーセンタイル

  • 上位5%の外れ値を除外した指標
  • 計算例(上記データセット)
    • 位置 = 0.95 × 10 = 9.5
    • 値 = 9番目(50) + (10番目(100) - 9番目(50)) × 0.5 

          = 50 + 50 × 0.5 = 75 ミリ秒

  • 意味
    • 95%のリクエストが77.5ミリ秒以下
  • 活用例
    • 現実的な最悪ケースを把握

99パーセンタイル

  • データの99%がその値以下となる点を示します
  • 100件のデータで考えると・・・
    # レスポンスタイム(ミリ秒)の仮想データ
    sorted_data = [
        120, 130, 135, ..., # 1-98件目:200ミリ秒以下
        200, 200,           # 99件目:200ミリ秒
        1500                # 100件目:1,500ミリ秒(外れ値)
    ]
    
  • 計算方法
    • 位置 = 0.99 × 100 = 99.0
    • 値 = 99番目の値 = 200ミリ秒
  • 意味
    • 100件中99件(99%)が200ミリ秒以下
    • ユーザーの99%は200ミリ秒以下で体験
  • 活用例
    • 目標設定:P99を150ミリ秒以下に改善
    • モニタリング:1,500ミリ秒の外れ値発生をアラート

なぜ平均では不十分か ?

指標ごとのメリットデメリットをまとめました。平均値では、外れ値の影響を強く受けることで正確にデータを分析しずらいためパーセンタイルという指標が使われております。

指標

メリット

デメリット

平均値

直感的に理解しやすい

外れ値の影響を強く受ける

パーセンタイル

データ分布を正確に反映

計算が複雑

最大値

最悪ケースを把握できる

一時的な異常値に左右される

まとめ

50パーセンタイルで通常の動作を、95-99パーセンタイルで異常値や改善が必要な部分を把握することで、より効果的なシステム運用が可能になるので、この記事を参考にパーセンタイルのデータが見れるようになったら幸いです(`・ω・´)

Anycloudではプロダクト開発の支援を行っています

プロダクト開発をお考えの方はぜひAnycloudにご相談ください。

まずは相談する

記事を書いた人

Tsukamura

エンジニア

Tsukamura

株式会社Anycloudでエンジニアをしています。