들은대로 썼음 주의
내식대로 이해했음 주의
정확하지 않은 내용일지 모릅니다.
컴퓨터와 어느정도 가까이 지냈다면, CPU의 사용률이 높다는 이야기를 들어본 적이 있을지도 모른다.
윈도우 운영체제를 사용해봤던 사람이라면, ctrl
+ alt
+ delete
를 사용하면 현재 컴퓨터에서 돌아가는 프로그램과 cpu의 사용률을 볼 수 있다는걸 알 것이다. (맥도 리눅스도 터미널 창을 이용하면 이를 볼 수 있다)
RAM / HDD / SDD같은 경우에 해당 장치의 현재 사용률을 이야기하라고하면, 단순한 산수로 수치를 구해낼 수 있다.
내가만약 8기가 HDD에 4기가의 용량을 차지하는 프로그램이든, 동영상이든, 사진이든 파일을 저장해 놓았다면 그 HDD의 현재 사용률은 50%라고 말할 수 있다.
하지만 cpu는 그렇지 않다. CPU는 현재 CPU가 연산을 수행하고 있는지 아닌지만이 존재한다. 즉 활동/비활동 켜짐/꺼짐처럼 두가지 상태밖에 없다는것이다.
그렇다면 코어가 4개인 CPU에서 현재 3개의 코어가 사용중이라면 해당 CPU의 사용률은 75%인것인가?
아니다.
보통 사람들이 말하는 CPU의 사용률이라함은 (시간당) CPU 사용률을 말하는 것이다.
CPU의 사용률은 보통 이렇게 측정된다.
(각 단위시간 중에 CPU가 사용된 총 시간의 합) / (단위 시간) * (cpu의 코어 갯수) = CPU 사용률
예를 들어 조금 더 쉽게 설명하자면 이렇다.
그러면 단위시간은 1초이고 이 1초동안 4개의 cpu가 활동한 시간은 0.3 + 0.2 + 1 + 0 = 1.5
가 된다.
그럼 지난 1초간 CPU의 사용률은 1.5 / 4 * 100 = 37.5
37.5퍼센트가 되는것이다. 또한 시간은 쏜살같이 흘러가고 있기 때문에, 다음 1초의 CPU사용률은 100%가 될 수도 있고, 50%가 될수도있고, 10% 가 될 수도 있다. 그렇기 때문에 이런 순간순간의 CPU사용률이 매우 높게 책정된다고 해서 내가 돌리고있는 프로그램의 성능을 크게 의심해 볼 필요는 없다.
linux 혹은 MacOS에서 top
명령을 실행 시키면 윈도우 프로세스창과 비슷하게 최근 1분 / 5분 / 15분의 CPU사용률을 볼 수 있다.
여기서 이 3개의 수치는 중요하다.
이 수치가 CPU의 코어수 보다 높게 나온다는 것은 CPU가 감당할 수 있는 작업보다 많은 작업을 컴퓨터에서 처리하고 있다는 소리이다.
만약 본인의 프로그램으로 인해 서버 컴퓨터의 LoadAverage값이 높게나온다면 컴퓨터의 성능 개선 혹은 프로그램 최적화를 고려해봐야한다는 소리이다.
top 에서 볼 수 있는 1/5/15 분 CPU 사용률 키워드 알려주심 감사하겠슴다.
ps. 인기글 축하드려요~!