cpu 모니터링 문의

jo007ki의 이미지

안녕하세요.

궁금한 것이 있어서 문의드립니다.

cpu 모니터링 툴을 만들었습니다.

/proc/stat 파싱하는것으로 일반적으로 많이 돌아다니는 소스

long percentages(int cnt, int *out, long *my_new, long *old, long *diffs)를 사용하였습니다.

하지만, 듀얼 cpu에서 top 툴과 값을 비교하였을 때 차이점이 있어서 문의드립니다.

main
{
	while( 1 );
}

이렇게 무한 루프를 도는 test 프로그램을 실행시키면,

1개 실행
top에서는 user가 50%, 만든 모니터링 툴에서는 user가 100% 사용

2개 실행
top에서는 user가 100%, 만든 모니터링 툴에서는 user가 100% 사용

cpu가 2개이니 top 결과가 맞는거 같은데 차이점이 무엇을까요???

혹시 관련 문제 아시면 조언 부탁드립니다.

(--)(__)(--)

aero의 이미지

모니터링소스는 첫번째 CPU(혹은 core)만 본다.
1: 100% 2: 0 %

top은 CPU(혹은 core)갯수로 나누어서 보여준다.
(100+0)/2 = 50%

jo007ki의 이미지

/proc/stat 에서도 cpu / cpu0 / cpu1에서 합처진 cpu기준으로 계산이 된것이에요...

#include <stdio.h>

int main()
{
printf("Debian GNU/Linux\n");

return 0;
}