본문 바로가기
STUDY/SYSTEM

CPU load average

by simongs 2013. 9. 5.

업무를 하다보면 서버의 이상상태에 대한 감지를 원하게 된다.

이때 몇가지 카테고리로 감지를 설정할 수 있는데 그 중에 CPU load average에 관한 글이다.

참고한 URL은 다음과 같다.

http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages 

load average: 0.09, 0.05, 0.01

다음 정보는 uptime, top 명령어를 통해서 확인 할 수 있다.

각각은 1분, 5분, 15분 평균 load average를 의미한다.

그럼 어느 정도 수치가 되야 위험한 수치일까? 빠르게 안정화 시키려면 어떻게 해야할까?

1. background about load average

가장 simple한 케이스인 single-core processor 에 대해서 가정해보자.

하나의 도로의 교통상황을 생각해 볼 수 있다. 

간단한 traffic 량에 대한 분석은 특정 시간에 얼마나 많은 량의 차들이 기다리고 있는가로 측정할 수 있다.

0.00 은 도로에 교통량이 전혀 없음을 의미한다.

사실 0.00 과 1.00 사이의 값은 전혀 지연이 없음을 의미한다.

1.00 은 도로의 정확한 가용량을 의미합니다.

모든 상태는 여전히 좋지만 traffic이 조금더 많아지면 바로 slow 상태로 갈수 있는 상태를 의미합니다.

over 1.00 은 밀리고 있음을 이야기합니다.

2.00 은 한 도로에서 받을 수 있는 가용량의 총 2배를 의미합니다.


위의 내용이 CPU load 가 의미하는 기초적인 내용입니다.

2. 그럼 이상적인 load는 1.00 인가요?

1.00은 여유공간이 없음을 의미합니다. 그래서 실제 시스템에서는 0.70 정도를 선으로 긋습니다.

0.70 이상 : 더 나빠지기 전에 조사해봐야한다

1.00 이상 : 지금 바로 고쳐야할 이슈이다.

5.00 이상 : 심각한 상태이다. 서버가 hanging 상태이거나 slow way down 상태이다. 


3. multi-processors에서는 어쩌나? 나의 서버는 3.00을 출력한다. 

멀티프로세서 환경에서는 프로세서 core 수에 따라 load 의 수치는 변경된다.

single-core에서는 1.00 이 100% 가용량이고 dual-core는 2.00, quad-core는 4.00 이다.


4. 3가지 수치에 대해서 어떻게 생각할 것인가! (1,5,15분)

5분이나 15분의 평균 수치를 유심히 봐야한다. 1분 안에 1.00을 넘었다면 그것은 괜찮다. 

15분 평균 수치가 1.00을 넘었다면 그 때는 조치가 필요하다. (single-core 기준)


5. 내 시스템에 몇 개의 core가 있는지 어떻게 알수 있을까요?

 cat /proc/cpuinfo | grep 'model name' | wc -l

각 processor들의 정보를 알 수 있습니다.


'STUDY > SYSTEM' 카테고리의 다른 글

Understanding Disk I/O  (0) 2013.09.06

댓글