시스템 로드(avg load) 값이 CPU 점유율과 다른 이유

시스템 로드(avg load) 값이 CPU 점유율과 다른 이유

리눅스 서버를 운영하다 보면 top, uptime, w 명령어에서 표시되는 시스템 로드(avg load) 값과 CPU 사용률이 서로 다른 값을 보여 혼란을 겪는 경우가 많다. 두 값은 비슷해 보이지만 실제로는 완전히 다른 개념이며, 서버 상태를 판단할 때 서로 다른 의미를 갖는다. 특히 시스템 부하 분석, 병목 파악, 성능 최적화 작업에서는 avg load의 구조적 의미를 정확히 이해하는 것이 중요하다. 아래에서는 avg load가 무엇을 의미하는지, CPU 사용률과 어떤 차이가 있는지 기술적으로 정리한다.

1. 시스템 로드(avg load)란 무엇인가

시스템 로드는 CPU가 처리해야 하는 작업량을 수치화한 지표다.
여기서 중요한 점은 단순히 CPU를 사용하는 작업뿐 아니라 CPU를 기다리는 작업까지 포함한다는 점이다.

avg load는 다음 세 가지를 반영한다.

  • 실행 중인 프로세스(running)
  • CPU 실행을 기다리는 프로세스(runnable)
  • I/O 완료를 기다리는 프로세스(uninterruptible sleep, D-state)

즉, avg load는 “얼마나 많은 작업이 CPU 또는 I/O 자원을 기다리고 있는지”를 의미한다.

2. CPU 사용률과 avg load의 차이

많은 사용자들이 CPU 사용률과 시스템 로드를 동일한 개념으로 이해하지만, 두 값은 측정 대상부터 완전히 다르다.

CPU 사용률은 “CPU가 실제로 몇 % 일했는가”

CPU가 작업을 실행하는 동안의 활동률을 측정하는 지표이다.

  • 사용자 모드 작업 비중
  • 커널 작업 비중
  • idle 비율
  • I/O wait 비율

CPU 사용률은 단순히 CPU가 얼마나 바쁜지를 알려준다.

avg load는 “작업 대기열의 크기”

CPU가 바쁘지 않아도, 작업이 CPU나 I/O를 기다리기만 해도 avg load는 높아질 수 있다.

예시:

  • CPU 사용률은 낮은데 avg load가 높다
    → 대부분 I/O 대기 상태
    → 디스크 병목 가능성 높음
  • CPU 사용률이 높은데 avg load 낮다
    → CPU는 바쁘지만 작업 대기열은 짧음
    → 병목 없음, 정상 상태

두 지표는 전혀 다른 층의 시스템 상태를 보여준다.

3. avg load의 해석 기준

avg load는 CPU 코어 수에 따라 정상 범위가 달라진다.

1코어 서버

  • avg load = 1 → 적정 부하
  • avg load = 2 → 작업이 절반은 대기 중
  • avg load ≥ 3 → 과부하 상태 가능성 높음

4코어 서버

  • avg load = 4 → 적정 부하
  • avg load = 8 → 절반이 대기 상태
  • avg load ≥ 12 → 병목 가능성 높음

즉, avg load는 절대값이 아니라 코어 수 대비 상대값이 중요하다.

4. avg load가 높을 때 원인

avg load 상승은 CPU 바쁨 외에도 다양한 원인으로 발생할 수 있다.

CPU 병목

  • 고성능 연산이 많은 서비스
  • 비효율적인 코드
  • 높은 트래픽

I/O 병목 (가장 흔한 원인)

  • 느린 HDD 또는 포화된 SSD I/O
  • DB 쿼리 과부하
  • 백업/로그/파일 읽기·쓰기 집중

avg load는 I/O wait 상태도 포함하므로, 디스크 병목에서 값이 크게 상승한다.

메모리 부족

  • Swap 사용 증가
  • 페이지 폴트 발생
  • 메모리 회수 작업(kswapd) 증가

잠금(locking) 문제

  • DB row-lock, table-lock
  • 파일 잠금
  • 커널 레벨 락 경합

네트워크 병목

  • 소켓 대기
  • 네트워크 패킷 처리 지연

avg load는 시스템 전체 병목 상태를 숫자로 압축해 보여주는 지표다.

5. avg load를 확인하는 방법

uptime

uptime

1분, 5분, 15분 평균 로드를 표시한다.

top

top

화면 상단에서 load average 값 확인 가능.

htop

실행 중/대기 중 프로세스를 시각적으로 파악하기 좋다.

전문가적 결말

avg load는 단순 CPU 점유율과 달리 시스템 전체의 처리 대기 상황을 반영하는 종합적 지표이다. CPU가 바쁜 경우뿐 아니라 I/O 대기, 메모리 부족, 락 경합 등 다양한 병목 요인까지 포함해 시스템의 전반적인 부하 상태를 보여준다. 따라서 서버 운영자는 avg load를 CPU 사용률과 함께 분석해 어떤 자원에서 병목이 발생하는지 정확히 판단해야 하며, 코어 수 대비 적정 수준을 기준으로 로드 값을 해석하는 것이 중요하다. 시스템 최적화와 장애 대응 과정에서 avg load는 단순한 숫자 이상의 의미를 가지는 핵심 성능 지표라고 할 수 있다.

댓글 남기기