CPU 백분율이란 무엇입니까?


11

프로세스에서 CPU 사용률을보고 있습니다. 프로세스는 어떻게 CPU를 50 % 만 사용합니까? 프로세스가 100 %, 0 %, 100 %를 사용하지 않습니까? 다른 모든 명령어와 다른 프로그램은 아닙니다.


1
우연히 듀얼 프로세서가 있습니까?

슈퍼 유저에게 꼭 필요한 질문입니다.
Noldorin

답변:


16

초당 총 한 번만 폴링합니다. 마지막으로 사용한 시간을보고 있습니다.

CPU가 잠시 동안 50 %에 머무르면 듀얼 CPU 시스템에서 하나의 CPU를 100 % 사용하고있을 가능성이 높습니다.


4
"이중 코어 시스템의 한 코어"-... 또는 '하이퍼 스레딩'이있는 단일 CPU.

@ChrisW : 수정되었습니다.
Joel Coehoorn

CPU 사용률은 각 CPU에 대해 100 %로 개별보고되는 경우가 많으므로 듀얼 코어 시스템에 사용되는 총 CPU 전력량은 200 %, 쿼드 코어 400 % 등입니다.
David Z

Windows 작업 관리자에는 없습니다.
Joel Coehoorn

11

기술적으로 당신은 맞습니다. 주어진 시간에 CPU가 사용 중이거나 사용되지 않습니다. 그러나 그래프에 표시하는 것은별로 도움이되지 않으므로 그래프는 일정 시간, 아마도 초당 CPU 사용률을 평균화합니다.


3

OS는 특정 기간 동안 프로세스를 예약합니다. 따라서 프로세스가 10ms 중 1ms로 예약되면 10 % CPU를 사용하게됩니다.

(단일 스레드, 단일 CPU 시스템에서) 프로세스가 실행 중이거나 실행 중이 아니기 때문에 약간 직관적입니다. 즉, 100 % 또는 0 %를 사용하고 있습니다. 표시되는 백분율은 시간 창에서 측정되며 프로세스에 실행할 시간 슬롯을 할당하는 OS의 측정치입니다.

I / O에 액세스하는 경우 프로세스가 이에 기여하지 않습니다. 따라서 큰 계산을 수행하는 경우 100 %를 등록합니다 (다른 것이 아무것도 없다고 가정). 그런 다음 네트워크 패킷 / 디스크 액세스 등을 기다리면 프로세스가 여전히 실행 중이지만 CPU 수치가 떨어집니다.


2

매우 낮은 수준에서는 기본적으로 옳습니다. 주어진 순간에, 프로세서는 주어진 프로세스에 대한 명령을 실행하고 있거나 그렇지 않습니다.

그러나 OS는 프로세스와 프로세서 사이에있어 시간을 공유합니다. 표시되는 백분율은 OS가 해당 프로세스에 부여한 최근 처리 시간의 백분율입니다.


1

평균 시간을 기준으로합니다. 모든 스레드가 동일한 우선 순위에 따라 동일한 CPU 시간을 가질 수 있지만 스레드는 "감사하지만 유휴 상태입니다"라고 말하고 다음 스레드로 넘어갑니다. 그렇기 때문에 프로그램이 항상 같은 시간을 사용하는 것은 아니며 대부분의 프로그램은 CPU를 0 % 소비하고 있으며 실제로 CPU가 필요한 프로그램은 자체적으로 거의 100 %의 시간이 걸릴 수 있습니다.

왜 상한선이 50 %입니까? 아마도 두 개의 CPU 코어가 있고 하나만 사용합니다.

또는 제안 된대로 하이퍼 스레딩을 사용하고 있지만 이것이 어떻게 작동하는지 모르겠습니다.


0

프로그램에서 많은 I / O (디스크 또는 네트워크 읽기 / 쓰기)를 수행하고있을 수 있습니다. 그것은 프로그램을 바쁘게 유지하지만 CPU 시간이 거의 필요하지 않습니다.


0

시스템 활용도는 샘플링되어 평균화되는데 이는 합리적 일뿐입니다.

예를 들어 1 초 동안 프로세스 / 스레드가 실행하는 데 걸린 시간이 기록됩니다. CPU에서 1 초를 소비 한 경우 CPU 100 % (2 개의 CPU가있는 경우 50 %)이고 100ms를 소비 한 경우 10 %의 CPU 사용률입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.