7分でレイテンシを正しく測定する方法
レイテンシを正しく測定するには、質の高いデータが必要です。 KPMGの「2016Global CEO Outlook」によると、CEOの84%が意思決定に基づいているデータの品質を懸念しており、あまりにも頻繁にデータが誤解を招く可能性があるためです。
データを気にしている企業とそうでない企業の違いは巨大です。 MITの研究者は、データ駆動型設計を採用している企業は、他の投資や情報技術の使用を考えると予想されるものよりも5-6%高い出力を持っているこ この理由だけで、レイテンシを理解することはビジネスの成功に不可欠です。
わずか7分で、レイテンシの測定について知っておく必要があるすべてを学びます
- レイテンシの測定方法
- 適切に測定することが重要な理由
- レイテンシデータを見るときの一般的な落とし穴
- インスタントフィードバックの重要性
- サンプリングされていないデータが必要な理由
では、レイテンシとは何ですか?
Dictionary.com レイテンシは、”ハードウェア-システムのあるコンポーネントが別のコンポーネントによってアクションが実行されるのを待っているときの遅延期間”と定義 簡単に言えば、これは関数の呼び出しから実際の実行までの時間を意味します。 たとえ私たちが完全なシステム(存在しない)を持っていたとしても、コンピュータ内の電子がトランジスタをオンからオフに切り替えるのにかかる時間、またその逆にかかる時間は潜在的になるでしょう。
小さな操作でのレイテンシは大したことではありませんが、何百万もの操作を処理する場合、数百万のレイテンシが高速に加算されます。 レイテンシは作業単位/時間ではなく、その動作方法によって定義されます。 監視ツールは、関数の開始から関数の終了までの時間を報告します。
レイテンシはビジネスに大きな影響を与える可能性があります。 そのため、レイテンシをできる限り理解することが非常に重要です。
レイテンシデータを見るときの一般的な落とし穴:
レイテンシは、通常のガウス分布またはポアソン分布に従うことはほとんどありません。 レイテンシを観察する方法のために、レイテンシがこれらの分布のいずれかに従っていても、平均、中央値、さらには標準偏差は役に立たなくなります! たとえば、ページの負荷を測定している場合、これらの負荷の99.9999999999%が中央値よりも悪い可能性があります。 (この統計をつぶやくためにクリック)これは、あなたのレイテンシをランダムサンプリングすると、不正確なデータが発生する理由の一部ですが、これ
この時点で、あなたはおそらく私たちが標準偏差を使用していないかどうかを自問していますが、レイテンシを有意義に記述するにはどうすれば 答えは、百分位数と最大値を見なければならないということです。 ほとんどの人は自分自身に考えるので、私はP95を見て、私は”一般的なケース”を理解しています。 これの問題は、P95がすべての悪いものを隠すことです。 Azul SystemsのCTOであるGil Tene氏は、「これは「マーケティングシステム」であり、誰かがだまされています。”
例えば、このグラフを取る:
このグラフを見ると、それが中央値であり、平均が実際の有意性を持たない理由を明確に見ることができ、問題領域は表示されません。 あなたが左に95パーセンタイルのシュートを見るとき、あなたは問題の中心を見ていると思います。
これは、もちろん真実ではありませんが、あなたのプログラムにしゃっくりがあった理由を調査するとき、起こったことの最悪の5%を見ることがで この種のスパイクを取得するには、データの上位5%が大幅に悪化する必要があります。
ここで、99.99番目の百分位数も示す同じグラフを見てください:
その赤い線は95番目の百分位数ですが、緑は99.99番目の百分位数線です。 あなたがはっきりと見ることができるように、95パーセンタイルはあなたの問題の22のうち2つだけを示しています! これが、データの全範囲を調べる必要がある理由です。
多くの人がデータの最後の5%がそれほど重要ではないと思うかもしれないという事実にもかかわらず。 確かに、それは仮想マシンの再起動やシステム内のしゃっくり、またはそのようなものかもしれませんが、それを無視することは本当ですが、あなたが
ギル-テネルは、”決して取り除くべきではないナンバーワンの指標は最大値である”という大胆な主張をするのが好きです。 それはノイズではなく、信号です。 残りの部分はノイズです。”最大値は確かに大規模なシステムでは素晴らしいシングルですが、最大値の場合だけを追求することは実用的ではないことがよくあります。 大規模な実用的なシステムでは、最大のケースを排他的に追求することは、多くの場合、開発チームを燃え尽きるための良い方法です。
99.99番目の百分位数を見ると、大多数の顧客に何が起こるかがわかり、そこに表示されるスパイクは実際の問題ですが、最大値のスパイクはシステムのしゃっくりである可能性があります。 Devopsチームがこれらの小さな問題に集中すると、より大きな問題に取り組むことができないため、大きな機会コストでそうしています。
あなたの99.99番目とあなたの最大値がお互いに非常に近い(そして両方ともスパイクされている)場合、これがあなたのチームが取り組むべき問題であ このように、Gilは最大値が大きな信号であることは正しいですが、残りのデータが単なるノイズであることは間違っています。 このグラフでわかるように:
私たちの99。前の例の99番目の百分位数と最大値は正確に一致します。 これは、あなたが見ているものが本当のバグであり、単なるしゃっくりではないという素晴らしい信号です。
パーセンタイルの平均化:事前計算が待ち時間を誤って測定する原因となっている方法:
95番目のパーセンタイルを見るだけでは、パーセンタイルが平均化されていることを認識できないよりも、さらに悪い落とし穴があります。 それはあなたが見ているものからすべての重要性を取り除きます。 レイテンシを見ているときに平均がどのように良くないかをすでに示しており、平均百分位数を見ている場合は、単純に正方形に戻っています。 多くのソフトウェアの平均あなたの百分位数は、例えば、このGrafanaチャートを取る:
この上のすべての百分位数が平均である前に、あなたはそれを実現したかどうか! それはx軸の元帳のすぐそこにそう言います。 ほぼすべての監視サービスは、あなたの百分位数を平均! これは事前計算による現実です。 監視サービスがデータを取り込むと、その分のデータの百分位数が計算されます。
そして、あなたがあなたの95番目の百分位数を見に行くとき、彼らはあなたのすべての百分位数から平均を示しています。 あなたのサービスをより速くするための「あなたの利益」のためのこの近道は、実際には、あなたのデータからすべての統計的有意性を取り除くことです。
レイテンシを適切に測定するためにサンプリングされていないデータが必要な理由:
あなたがそれを知っているかどうかにかかわらず、データサンプリ ほぼすべての監視ツールがデータをサンプリングしています。 例えばDataDogを取る;彼らは主要なデータの損失を持っています。 あなたは彼らに分で3万ポイントを送信した場合、彼らはそれらをすべて取ることはありません。 代わりに、彼らはランダムにポイントをサンプリングし、毎分1ポイントにそれらを集計します。
レイテンシを理解するには、サンプリングされていないデータが必要です。 サンプリングされたデータでは、完全な分布にアクセスできないことが固有のものです! あなたの最大値はあなたの本当の最大値ではなく、あなたのグローバル百分位数は何が起こっているのかを正確に表現していません!
データをサンプリングするときは、データを省略しています。 たとえば、10,000の操作が1分で発生し、それぞれ2つのデータポイントを監視システムに送信しているとします。 システムにバグがあり、これらのデータポイントの1つが10,000回の操作ごとにこれを示しているとします。 あなたの監視システムは、それが最大としてあなたを示しているデータポイントとしてこれを選択する1/20,000のチャンスを持っています!
あなたが十分に長く実行すると、データポイントは最終的に表示されますが、その結果、毎分あなたの顧客の一人に起こっているにもかかわらず、散発的なエッジケースのように見えます! データをサンプリングせず、これらのスパイクの1つがある場合、99.99番目の百分位数にはっきりと表示され、最大値がその近くに表示され、プログラムにバグがあることを通知します。 ただし、データをサンプリングすると、頻繁に表示されることはなく、バグとしてではなく、しゃっくりとして表示されます。 これはあなたの工学チームがそれの重大さを実現しないことを意味する!
あなたの監視ツールがあなたの待ち時間で何が起こっているのかを知っていると思うようにあなたを欺くことはできません。
サンプルデータを提供しないツールを選択します。 グローバル百分位数を平均化しないツールを選択します。 今日の無料の二週間のトライアルを開始!