CPU 사용량: 사용자, 시스템, 유휴 상태를 합하면 항상 100%가 되나요? [폐쇄]

CPU 사용량: 사용자, 시스템, 유휴 상태를 합하면 항상 100%가 되나요? [폐쇄]

https://www.opsdash.com/blog/cpu-usage-linux.html

CPU 사용량의 구성요소

그렇다면 "작업 유형"이란 무엇입니까? 가장 확실한 것은 "사용자"와 "시스템"입니다.

시스템: CPU가 커널 코드를 실행 중입니다. 여기에는 장치 드라이버와 커널 모듈이 포함됩니다.

사용자: CPU가 사용자 모드에서 코드를 실행 중입니다. 여기에는 애플리케이션 코드가 포함됩니다. 응용 프로그램이 디스크에서 읽거나 네트워크에 쓰려고 하면 커널이 해당 작업을 수행하는 동안 실제로 절전 모드로 전환되어 응용 프로그램을 다시 깨웁니다.

유휴(Idle): 커널이 실제로 할 일이 없으면 이 시간은 낭비됩니다. 기술적으로 말하면, 실행 가능한 대기열이 비어 있고 진행 중인 I/O 작업이 없을 때 CPU 사용량은 유휴 상태로 표시됩니다.

사용자, 시스템 및 유휴 비율의 합이 항상 100%라는 것을 올바르게 이해하고 있습니까?

답변1

가능한 상태는 운영 체제(Linux 또는 Unix, 변형 및 버전)에 따라 다릅니다.

가능한 모든 상태 값의 합은 100%입니다. 그렇게 계산되기 때문입니다.

사용자, 시스템, 유휴 등의 주요 상태 외에도 주목할 만한 한 가지 상태는 해당 상태의 수준이 중요할 수 있다는 것입니다.훔친, 여기서 CPU는 동일한 하드웨어에서 실행되는 다른 가상 머신에서 사용됩니다. 다른 상태는 특정 I/O가 완료(대기)되기를 기다리는 것과 소프트웨어 및 하드웨어 인터럽트를 기다리는 것입니다.

답변2

사실은 그렇지 않습니다. 다른 유형의 CPU 사용량이 있습니다. 실행하면 sar -u ALLCPU 사용량을 확인할 수 있습니다.

00:00:01        CPU      %usr     %nice      %sys   %iowait    %steal      %irq     %soft    %guest     %idle
00:10:01        all     89.42      0.00      0.28      0.00      0.00      0.00      0.02      0.00     10.28

저자가 지적했듯이, 사용자 공간 프로그램(%usr), 멋진 프로세스 시간(%usr)(어떻게 계산되는지는 확실하지 않음), 커널 공간 프로그램(%sys), 대기 시간 I/를 포함한 다른 유형의 CPU 사용량이 있습니다. O(디스크)(%iowait), 한 CPU에서 사이클을 훔치는 데 소요된 시간(%steal) 및 인터럽트 요청(%irq, %soft). CPU가 이러한 작업을 수행하지 않으면 유휴(%idle)로 간주됩니다. 이들의 합은 항상 100%여야 합니다.

관련 정보