top이 CloudWatch와 다른 CPU 사용량을보고하는 이유는 무엇입니까?


9

topCloudWatch 모니터링은 평균 CPU 사용량이 40 % 인 반면, 피크 시간 동안 약 20 %의 평균 CPU 사용량을 보여줍니다. 이 불일치의 원인은 무엇입니까?

답변:


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 사용률은 기본 코어의 사용률을 의미합니다. 그러나이 VM에 할당 할 수있는 최대 CPU 점유율은 40 %이므로 유효 CPU 사용량은 40 % / 40 % = 100 %입니다. CloudWatch가 표시하는 번호입니다.

40 %가 어디에서 오는지 궁금하다면 수학은 매우 간단합니다. m1.small Linux 시스템은 1.0–1.2 GHz 2007 Opteron 또는 2007 Xeon 프로세서와 동등한 CPU 용량을 제공하는 1 EC2 컴퓨팅 장치를 사용할 수 있습니다. VM은 2.6GHz 클럭 속도의 머신에서 실행되므로이 ​​특정 XEN 노드에서 프로세서 점유율은 38.4 % – 46.2 %입니다. cat / proc / cpuinfo 명령을 실행하여 EC2 인스턴스 뒤의 CPU 아키텍처를 찾을 수 있습니다.

특수 수학에 대해 모르는 도구를 다루는 방법에 대한 힌트에 특히주의하십시오.

CloudWatch와 통합되지 않은 기존 에이전트 또는 SNMP 기반 모니터링 도구를 개선하는 데 사용할 수있는 또 다른 옵션은 CPU 유휴 메트릭을 사용하는 것입니다. CPU 사용률 대신 CPU 유휴를 측정하기 위해 규칙을 다시 작성하기 만하면됩니다. 예를 들어 CPU 사용률에 대해 75 % 초과의 임계 값이 정의되어 있으면 CPU 유휴에 대한 <25 % 규칙을 작성하십시오. CPU 유휴 상태가 0이면 서버는 CPU 바운드입니다.

매우 간단합니다. 아주 좋아요

EC2 인스턴스 내에서 상위를 실행하면 인스턴스 및 기타를 실행하는 물리적 코어 머신의 CPU 사용량이 측정됩니다. 인스턴스의 CPU 사용량 (인스턴스에 할당 된 EC2 컴퓨팅 단위)을 측정하려는 경우이 사용량이 올바르지 않습니다.

클라우드 워치 지표는 인스턴스에만 할당 된 EC2 컴퓨팅 유닛에 대해 인스턴스 외부에서 측정되기 때문에 실제 이유입니다.

여기를 참조하십시오-https: //forums.aws.amazon.com/thread.jspa ? threadID=99993


다시 말해, 둘 다 옳지 만 다른 것을 측정하고 있습니다.
bahamat

1
그런 식으로 넣을 수 있습니다. 그러나 OP는 그가 생각하는 것이 아마존이 말하는 것이 아니라고 우려합니다. 따라서 그의 경우에는 최상위 데이터가 잘못되었습니다. 그러나 성능 문제를 디버깅하기 위해 기본 코어의 CPU 사용량을 측정하는 경우 실행이 매우 유용합니다. 인스턴스 사용에만 관심이있는 경우 Cloudwatch를 사용하십시오. 예, 둘 다 다른 것을 측정합니다.
Chida

1
나는 "이전은 당신 원하는 것으로 생각하고 후자는 당신이 정말로 원하는 것" 이라고 내 진술을 따라야 했지만, 나는 그것이 이미 다뤄 졌다고 생각했다.
bahamat

방금 말한 내용 +1
Chida

1
웨이 백 머신에서 사용 불능 링크의 컨텐츠를 검색하여 게시물에 직접 추가했습니다.
Johano Fierra
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.