회사에서 주워들은 지식 - CPU

kykevin·2020년 7월 2일
3
post-thumbnail

주의

들은대로 썼음 주의
내식대로 이해했음 주의
정확하지 않은 내용일지 모릅니다.

CPU사용률이 높다.

컴퓨터와 어느정도 가까이 지냈다면, 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의 코어 갯수) = CPU 사용률

예를 들어 조금 더 쉽게 설명하자면 이렇다.

  1. 컴퓨터에는 코어가 4개인 CPU가 장착되어있다.
  2. 단위시간은 1초이다
  3. 지난 1초간 코어1의 활동시간은 0.3초 / 2의 활동 시간은 0.2초 / 3의 활동 시간은 1초 / 4의 활동 시간은 0초 이다

그러면 단위시간은 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사용률이 매우 높게 책정된다고 해서 내가 돌리고있는 프로그램의 성능을 크게 의심해 볼 필요는 없다.

Load Average

linux 혹은 MacOS에서 top 명령을 실행 시키면 윈도우 프로세스창과 비슷하게 최근 1분 / 5분 / 15분의 CPU사용률을 볼 수 있다.

여기서 이 3개의 수치는 중요하다.

이 수치가 CPU의 코어수 보다 높게 나온다는 것은 CPU가 감당할 수 있는 작업보다 많은 작업을 컴퓨터에서 처리하고 있다는 소리이다.

만약 본인의 프로그램으로 인해 서버 컴퓨터의 LoadAverage값이 높게나온다면 컴퓨터의 성능 개선 혹은 프로그램 최적화를 고려해봐야한다는 소리이다.

profile
Back-end Developer, pursuing to be a steadily improving person.

2개의 댓글

comment-user-thumbnail
2020년 7월 10일

top 에서 볼 수 있는 1/5/15 분 CPU 사용률 키워드 알려주심 감사하겠슴다.
ps. 인기글 축하드려요~!

1개의 답글