「Max Cpu」が 100% になっているのは正常ですか?

「Max Cpu」が 100% になっているのは正常ですか?

以下は、アプリケーションをホストする Azure の「App Service プラン」からの 2 つの画像です。最近スケールアップを試みましたが、以下に示す問題は解決されませんでした。

当社の「最大 CPU」は毎日、一日中ピークに達しますが、これは最大集計です。これらは一時的なスパイクです。一方、CPU パーセンテージの AVG 集計は正常です (2 枚目の写真)。

最初の画像のように、CPU の一時的なスパイクが最大になることが予想されるのでしょうか、それともこれは異常でしょうか?

ありがとう!

最大CPU 最大CPU

平均CPU 平均CPU

答え1

これは集計ルールであり、実際の使用状況ではありません。メトリックが収集されると、(CPU の場合) 現在の CPU 負荷という単一のメトリックが存在します。メトリックが 1 分間に 6 回収集される場合、6 つの値があります。長い間隔が表示される場合、通常はすべてのデータが表示されるのではなく、集計が実行されます。集計が 10 分間隔まで短縮されると、この間隔内のすべてのデータが 1 つの数値にまとめられます。これを行うには、最小、最大、平均、中央値などのさまざまな関数があります。

1 つは平均することです (2 番目のグラフ)。もう 1 つは、その間隔で見つかった最大ピークを表示することです (1 番目のグラフ)。平均の集計ではピークが隠れる傾向があり、最大値の集計ではピーク使用が不当に増加する傾向があります。10 分の集計ウィンドウがあり、この瞬間に何らかのプロセスが 0.1 秒間 100% を消費し、その 0.1 秒がメトリックが収集された瞬間だった場合、10 分間の 100% CPU 使用率が発生します (「最大」集計が使用されている場合)。

答え2

それは、その上で実行されているアプリケーションに大きく依存します。CPU を集中的に使用する作業を行っている場合は、CPU 使用率が最大限に高くなる可能性があります。ハードウェアをアップグレードすると、実行中のタスクがより速く完了することがわかります。

実行しようとしているアプリについては何も知りません。したがって、これらのスパイク中に正常に動作するマルチスレッド アプリケーションなのか、スパイク中にハングするシングルスレッド アプリケーションなのかはわかりません。前者の場合は、あまり気にしません。ただし、後者の場合は、CPU をさらにアップグレードするか、アプリのソース コードにアクセスできる場合は、CPU を集中的に使用するタスクを最適化できるかどうかを調べることを検討するでしょう。

関連情報