topがCloudWatchとは異なるCPU使用率を報告するのはなぜですか?


9

topピーク時の平均CPU使用率は約20%を示し、CloudWatchモニタリングは平均CPU使用率が40%を示しています。この矛盾の原因は何ですか?

回答:


15

非常に良い観察であり、これにも遭遇しました。これが私が見つけたものです:

EC2インスタンス内からのCPU使用率の測定には注意してください。CPU使用率が100%をはるかに下回る可能性がありますが、それでも完全に限界に達する可能性があります。私を信じて:そこにいて、それをやった。(ちなみに、CloudWatch CPUUtilizationはインスタンスの外部から測定され、常に正しいです。)

ここに全体の非常に良い説明があります:https : //axibase.com/news/ec2-monitoring-the-case-of-stolen-cpu/

上記の例では、m1.small EC2インスタンスに0.4プロセッサユニットが割り当てられているため、40%のCPUビジーは、基になるコアの使用率を意味します。ただし、40%はこのVMに割り当てることができる最大CPUシェアであるため、有効なCPU使用率は40%/ 40%= 100%です。CloudWatchによって表示される番号です。

40%がどこから来るのか疑問に思っている場合、計算はかなり簡単です。m1.small linuxシステムは、1.0–1.2 GHz 2007 Opteronまたは2007 Xeonプロセッサーと同等のCPU容量を提供する1つのEC2コンピューティングユニットを利用できます。VMは2.6 GHzのクロック速度のマシン上で実行されるため、この特定のXENノードで38.4%〜46.2%のプロセッサ共有を利用できます。cat / proc / cpuinfoコマンドを実行して、EC2インスタンスの背後にあるCPUアーキテクチャを確認できます。

特別な数学について知らないツールの扱い方に関するヒントに特に注意してください。

CloudWatchと統合されていない既存のエージェントまたはSNMPベースのモニタリングツールを改良するために使用できる別のオプションは、CPUアイドルメトリックを使用することです。実行する必要があるのは、CPUビジーではなくCPUアイドルを測定するルールを書き換えることだけです。たとえば、CPUビジーに対して75%を超えるしきい値が定義されている場合は、CPUアイドルに対して25%未満のルールを作成します。CPUアイドルが0の場合、サーバーはCPUバウンドです。

とても簡単です。非常に素晴らしい。

EC2インスタンス内でtopを実行すると、インスタンスなどを実行している物理コアマシンのCPU使用率が測定されます。インスタンスのみのCPU使用量(インスタンスに割り当てられたEC2計算ユニット)を測定する場合、この使用法は正しくありません。

cloudwatchメトリクスは、インスタンスのみに割り当てられたEC2コンピューティングユニットのインスタンスの外部で測定されるため、これが本当の理由です。

こちらをご覧ください-https://forums.aws.amazon.com/thread.jspa?threadID = 99993


言い換えれば、どちらも正しいのですが、測定する内容が異なります。
12

1
あなたはそれをそのように置くことができます。しかし、OPは、彼が見ていると思うのは、アマゾンが彼が見ていると言っているのではないことを懸念しています。したがって、彼の場合、上位のデータは彼にとって正しくありません。ただし、基礎となるコアのCPU使用率を測定してパフォーマンスの問題をデバッグする場合は、トップで実行すると非常に役立ちます。インスタンスの使用法のみに関心がある場合は、cloudwatchが適しています。だから、はい、どちらも異なるものを測定します。
チダ

1
「前者はあなたが望むものであり、後者はあなたが本当に望むものである」という私の発言に従わなければならなかったと思いますが、それはすでにカバーされていたと思いました。
12

先ほど言った内容の+1 :)
チダ

1
ウェイバックマシンからデッドリンクのコンテンツを取得し、投稿に直接追加しました。
ジョハノフィエラ2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.