Embedded Linux(Kernel 2.6.37)
은 ARM
입니다. busybox 1.13.2
에서 기본값은 top
입니다. 그리고이 Linux
을 실행하기 위해 크로스 컴파일을 통해 procps-ng 3.3.11
을 빌드합니다. 나는 busybox
과 procps-ng
에서 top
출력을 통해 과정 %cpu
가 다르다는 것을 발견했습니다.다른 프로세스의 % CPU가 busybox 및 procps-ng의 상단을 통해 출력됩니다.
예를 들어, 한 프로세스의 %cpu
은 약 30 %이지만, busybox top
은 약 10 % 만 표시합니다. 총 %cpu
은 procps-ng top
과 busybox top
에서 동일합니다.
그럼 나는 계산 소스 코드 busybox
과 procps-ng
을 읽었습니다. 나는 한 프로세스의 %cpu
에 대해 서로 다른 계산 공식을 가지고있는 것을 발견했습니다.
- busybox top:
CPU% = s->pcpu/sum(s->pcpu) * busy_cpu_ticks/total_cpu_ticks
(pcpu is delta of sys+user time between samples)
- procps-ng top:
CPU% = s->pcpu/total_cpu_ticks
왜이 개 프로젝트는 서로 다른 계산 공식을 선택? 다른 애플리케이션 케이스를 위해 설계 되었습니까? 감사합니다.