'최대 CPU'는 100% 정상인가요?

'최대 CPU'는 100% 정상인가요?

다음은 애플리케이션을 호스팅하는 Azure 'App Service 계획'의 두 이미지입니다. 최근에 규모 확장을 시도했지만 아래 표시된 문제는 해결되지 않았습니다.

우리의 '최대 CPU'는 매일 하루 종일 최고치에 달하지만 이것이 MAX 집계입니다. 이는 일시적인 스파이크입니다. 한편 CPU 비율의 AVG 집계는 정상입니다(두 번째 사진).

첫 번째 그림에서 볼 수 있듯이 최대 CPU 일시적인 스파이크가 있을 것으로 예상됩니까, 아니면 이것이 비정상입니까?

감사합니다!

최대 CPU 최대 CPU

평균 CPU 평균 CPU

답변1

실제 사용량이 아닌 집계 규칙입니다. 메트릭이 수집되면 (CPU의 경우) 현재 CPU 로드라는 단일 메트릭이 있습니다. 지표가 1분에 6번 수집되면 값은 6개가 됩니다. 큰 간격을 표시할 경우 일반적으로 모든 데이터를 표시하지 않고 집계를 수행합니다. Fe 집계가 10분 간격으로 축소되면 이 간격의 모든 데이터가 하나의 숫자로 축소됩니다. 이를 수행하는 데는 최소, 최대, 평균, 중앙값 등 다양한 기능이 있습니다.

하나는 평균을 내는 것입니다(두 번째 차트). 다른 하나는 해당 간격(첫 번째 문자)에서 발견된 최대 피크를 표시하는 것입니다. 평균에 대한 집계는 최고치를 숨기는 경향이 있고, 최대치에 대한 집계는 최고치 사용량을 비합리적으로 늘리는 경향이 있습니다. 10분의 집계 기간이 있고 이 순간 동안 일부 프로세스가 0.1초 동안 100%를 소비했고 해당 0.1초가 측정항목이 수집된 순간인 경우 100% CPU 사용 간격은 10분입니다('최대'일 때). 집계가 사용됩니다).

답변2

이는 실행 중인 응용 프로그램에 따라 크게 달라집니다. CPU 집약적인 작업을 수행하는 경우 CPU 사용량이 최대한 높아질 수 있습니다. 하드웨어 업그레이드를 통해 확인할 수 있는 차이점은 다음과 같습니다. 진행중인 작업이 더 빨리 완료된다는 것입니다.

실행하려는 앱에 대해 아무것도 모릅니다. 따라서 급증 중에 정상적으로 실행되는 것처럼 보이는 다중 스레드 응용 프로그램인지, 아니면 급증 중에 중단되는 것처럼 보이는 단일 스레드 응용 프로그램인지 알 수 없습니까? 첫 번째 경우에는 크게 신경 쓰지 않을 것입니다. 그러나 두 번째 경우에는 아마도 CPU를 더 업그레이드하거나 앱의 소스 코드에 액세스할 수 있다면 CPU 집약적인 작업을 최적화할 수 있는지 알아보려고 할 것입니다.

관련 정보