EC2 모니터링에 100 % CPU와 20 % 만 표시되는 이유는 무엇입니까? 다른 인스턴스의 데이터베이스에 행을 삽입하는 ec2 인스턴스에서

다른 인스턴스의 데이터베이스에 행을 삽입하는 ec2 인스턴스에서 Python 스크립트를 실행하고 있습니다. ec2의 모니터링에서 100 % CPU 사용률을 보았지만 top은 python 프로세스의 20 %만을 보여줍니다. 상단에서 무엇이 누락 되었습니까? 네트워크 오버 헤드?



답변

노출 된 데이터 top는 종종 Amazon EC2 와 같은 가상화 된 환경에서 불충분하거나 오해의 소지가 있으며보고 된 비율은 인스턴스 유형 및 기본 프로세서 코어 활용률 (일반적으로 하이퍼 바이저에서 제공하는 가상화 된 하드웨어와 일치하지 않음)에 따라 다릅니다. 다른 것들-당신이보고있는 것은 요즘 대부분의 관련 유닉스 / 리눅스 모니터링 도구에 노출 된 각각의 CPU 도용 시간 으로 인한 것입니다 -예를 들어 열 % steal 또는 st in sar또는 top:

st-Steal Time
다른 작업 (예 : 다른 가상 시스템 실행)에 대해 하이퍼 바이저가이 가상 시스템에서 가져온 ‘도난’CPU 양입니다.

블로그 게시물 EC2 모니터링 : CPU 도난 사례 는이 주제에 대한 훌륭한 탐색과 설명을 제공합니다.

top 명령이 40 % CPU 사용 중을 표시하지만 CloudWatch에서 서버가 100 %로 최대 값을 초과했다고 표시하면 어느 쪽을 선택합니까? 대답은 간단하다 (CloudWatch는 정확하다, 정상은 아니다) […]

이 하이퍼 바이저 메트릭은 Unix / Linux 시스템에서만 (쉽게) 액세스 할 수있는 것처럼 보이지만 Windows (아직)에서는 볼 수없는 것 같습니다. 내 질문을 참조하십시오. Unix ‘CPU 도용 시간’에 해당하는 Windows가 있습니까? 이 문제에 대한 자세한 내용은


답변

아마존은 아마도 TOP에서 부하 및 사용량을 확인합니다. CPU에 두 개의 프로세스가있는 경우 20 %로 활용할 수 있지만로드 2는 가질 수 있습니다.