top
ピーク時の平均CPU使用率は約20%を示し、CloudWatchモニタリングは平均CPU使用率が40%を示しています。この矛盾の原因は何ですか?
top
ピーク時の平均CPU使用率は約20%を示し、CloudWatchモニタリングは平均CPU使用率が40%を示しています。この矛盾の原因は何ですか?
回答:
非常に良い観察であり、これにも遭遇しました。これが私が見つけたものです:
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