brunch

You can make anything
by writing

C.S.Lewis

by 이동인 Sep 30. 2019

CPU 지표 정리

About Infra.


인프라를 모니터링 하는데 있어서 CPU는 가장 기본이 되는 지표입니다. CPU의 사용량이 높다면 웹 서비스의 성능이 떨어지고 이는 고객의 불편으로 이어집니다. CPU의 대표적인 지표는 CPU 사용률이지만 그밖에도 다양한 CPU 지표들을 통해 우리는 문제를 예상하고 해결할 수 있습니다. CPU는 어떤 지표들이 있으며 각각 어떤 의미를 가지는지 알아보겠습니다. 


CPU Usage

CPU 사용량은 시스템 사용률과 사용자 사용률 등을 합친 값입니다. 여기서 시스템 사용률은 운영체제가 사용한 CPU 사용률을 의미하며 사용자 사용률은 응용프로그램이 사용하는 CPU 사용률을 의미합니다. 와탭에서는 5초 동안의 평균 사용률을 보여주고 있습니다. 

System 사용률이 높다면 시스템 사양을 높여야 합니다.

User 사용률이 높다면 시스템 업그레이드 또는 애플리케이션의 분배에 대해 고민해야 합니다. 


CPU Idle

CPU Idle은 CPU가 모든 일을 끝내고 쉬고 있는 시간을 의미합니다. 일반적으로 CPU Usage가 높다면 CPU Idle은 낮은 것이 정상입니다. 하지만 I/O Wait 또는 Steal 등의 값으로 인해 이 비율이 항상 일치하지는 않습니다. 

Idle 값이 항시 낮다면 시스템을 업그레이드 해야 합니다. 


CPU I/O Wait

CPU가 입출력을 대기하는데 사용한 시간의 비율을 보여줍니다. 프로세스에 바로 접근 할 수 없는 상황인 경우에 I/O Wait 비율은 늘어나게 됩니다. 

I/O Wait의 값이 높다면 하드 디스크를 SSD로 교체하거나 Raid 유형을 바꿔야 합니다. 


CPU Steal %

다른 OS에 의해서 빼앗긴 CPU 시간의 비율을 보여줍니다. 가상화되어 있지 않다면 Steal 값은 사용되지 않으므로 항상 0으로 표시됩니다. 

Public 클라우드에서 Steal 값이 높다면 직접 사양을 높이거나 벤더에 문의해야 합니다.  


CPU IRQ

CPU는 컴퓨터의 주변기기와 데이터와 신호를 주고 받으며 보드에서 일어나는 모든 일을 관장합니다. 주변기기들이 어떠한 일을 하게 되면 주변기기는 CPU에게 이러한 사실을 알려 주어야 합니다. 이렇게 주변기기가 CPU에게 어떤 사실을 알리면 CPU는 하던 일을 중단하고 그 요청을 받아야 하기 때문에 중지 요청(IRQ: Interrupt ReQuest) 라고 합니다. 인터럽트는 이벤트 가 발생 했음을 커널 (즉, 운영 체제 의 핵심 )에 알리는 신호로 CPU (중앙 처리 장치)에서 실행하는 명령 순서가 변경됩니다. 두 가지 주요 인터럽트 유형 중 하나 인 하드웨어 인터럽트 는 키보드의 키 누르기, 마우스의 움직임 또는 시스템의 진행과 같은 하드웨어에서 발생하는 이벤트에서 시스템으로 보내는 신호입니다.

와탭의 모니터링 차트에서 CPU IRQ(Interrupt ReQuest)는 %로 표시됩니다. 와탭에서는 5초 동안 CPU가 인터럽트 요청을 처리한 시간의 비율을 표시하고 있습니다.

IRQ 값이 크다면 네트웍이나 드라이브 같은 하드웨어를 처리하는데 들어가는 시간이 크다는 것입니다. 이런경우 CPU에 영향을 주는 하드웨어를 수정하거나 시스템을 업그레이드를 해야 합니다.  


CPU SOFTIRQ(Software Interrupt)

소프트웨어 인터럽트를 발생시키는 이벤트의 예로는 운영 체제의 특정 서비스 에 대한 응용 프로그램의 요청 또는 해당 프로그램의 종료가 있습니다. 소프트웨어 인터럽트 신호를 수신하면 CPU가 일시적으로 제어를 인터럽트 처리기 루틴 으로 전환 할 수 있습니다. 

SoftIRQ 값이 크다며 관련된 소프트웨어를 찾아서 해결해야 합니다. 


CPU Load

CPU Load는 수치가 낮을 수록 좋습니다. 이는 CPU에 부하가 어느정도인지를 판별하는 지표입니다. CPU Load는 코어를 따라값니다. 쿼드코어에서는 4인경우 부하가 100%입니다. 

CPU Load에 대한 자세한 내용


마치며

대부분의 개발자들이 CPU에 대한 지표를 다 이해하고 있을 거라 생각하지만 CPU Usage와 Idle에 대한 이해부터가 정확하지 않은 경우가 많습니다. 최근 데브옵스와 함께 개발자가 운영에 참여하는 케이스들이 많아지고 있습니다. 기본적인 하드웨어 관련 지표들은 알아두는 것도 나쁘지 않을 것입니다. 


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari