문제
APM과 인프라 간의 CPU 사용률 데이터가 모순되거나 CPU 사용률이 100%를 초과합니다.
원인
APM의 CPU 사용량 데이터는 인프라의 CPU 사용량 데이터와 다릅니다.
- APM에서 CPU 백분율 사용량은 지정된 서버에 있는 모든 응용 프로그램 또는 서비스 인스턴스 의 총 사용량을 측정합니다.
- 인프라에서 CPU 백분율 사용량은 호스트 또는 프로세스 와 관련하여 CPU 사용량을 보고 있는지 여부에 따라 다르게 측정됩니다.
앱의 CPU 사용량을 보려면: one.newrelic.com > (앱 선택)으로 이동하여 호스트 목록에서 CPU usage 을 확인합니다. 인스턴스 수는 각 호스트 이름 아래에 나열됩니다(예: 55개 인스턴스) .
APM CPU 사용률은 지정된 서버에서 앱 또는 서비스의 모든 인스턴스에 대한 CPU 사용을 집계하여 측정합니다. 이 비율은 서버의 코어에서 실행되는 인스턴스 수의 영향을 받습니다. 하나의 서버 또는 다중 코어 환경에서 실행되는 서비스의 여러 인스턴스는 100%를 훨씬 넘는 CPU 사용 비율을 생성할 수 있습니다.
APM은 CPU 시간을 집계하고 클록 시간으로 나누어 백분율을 계산합니다.
CPU usage = (instance CPU time + instance CPU time + [...]) / (clock time)
예: 쿼드 코어 프로세서로 업그레이드
동일한 아키텍처에서 듀얼 프로세서에서 쿼드 프로세서로 업그레이드하는 경우 동일한 로드 및 애플리케이션에 대해 거의 동일한 CPU 번호가 표시되어야 합니다. New Relic이 계산을 정규화하면 사용 중인 사이클 수가 같더라도 업그레이드가 CPU 사용량이 급격히 감소하는 것으로 나타납니다. 더 많은 인스턴스를 추가한다고 해서 코드가 더 효율적이지는 않습니다.
개별 호스트 CPU 사용량을 보려면:
one.newrelic.com > Infrastructure 로 이동하여 CPU % 를 확인하십시오.
호스트 목록에서 개별 CPU 사용량을 참조하십시오.
CPU 사용량에 대한 정확한 계산은 호스트 또는 프로세스 와 관련하여 CPU 사용량을 보는지에 따라 다르게 측정됩니다.
페이지
계산 세부 정보
호스트 페이지에서 CPU 백분율은
SystemSample
이벤트의 일부인 파생된 측정항목입니다. CPU 백분율은 New Relic에서 수집하지 않지만 여러 다른 메트릭에서 파생됩니다. 특히cpuPercent
속성은cpuUserPercent
,cpuSystemPercent
,cpuIoWaitPercent
및cpuStealPercent
의 집계입니다.호스트 페이지는 전체 시스템의 관점에서 메트릭을 보여줍니다. 예를 들어 서버에 32개의 코어가 설치되어 있고 50%의
cpuPercent
을 표시하는 경우 32개의 코어 중 16개가 사용되고 있는 것입니다.프로세스 페이지에서 CPU 백분율은 호스트가 아닌 개별 프로세스로 범위가 지정됩니다. 이 때문에 CPU 백분율 메트릭은 전체 시스템의 리소스를 고려하지 않습니다. 대신 각 프로세스가 사용하는 단일 CPU 코어의 양을 보여줍니다.
예를 들어 32코어 서버에서 50%의
cpuPercent
을 표시하는 프로세스는 단일 코어의 절반만 차지하거나 전체 서버에서 사용 가능한 CPU 주기의 약 1.5625%를 차지합니다. 이로 인해 프로세스 페이지에서 cpuPercent가 100%를 초과할 수 있습니다. 이 경우 프로세스는 단일 코어의 CPU 주기보다 더 많은 것을 요구합니다.