← 아티클 목록

리눅스 load average 의미 — 1·5·15분 숫자 읽는 법

2028-05-22#linux#load-average#성능

서버에 들어가 uptime을 쳤더니 load average: 2.10, 1.80, 0.95. 이 세 숫자가 높은 건지 낮은 건지 감이 안 와서 헷갈립니다. load average는 "CPU 사용률 %"가 아니라 실행을 기다리는 작업의 평균 개수라는 점만 잡으면 한 번에 이해됩니다.

load average가 세는 것

load average는 일정 시간 동안 실행 중이거나 실행을 기다리는(runnable) 작업의 평균 수입니다. 리눅스에서는 여기에 디스크 I/O를 기다리며 멈춘(uninterruptible) 작업도 포함됩니다. 그래서 CPU가 한가해도 디스크가 느리면 load가 치솟을 수 있습니다.

세 숫자는 각각 최근 1분·5분·15분의 평균입니다. 시간 흐름을 읽는 게 핵심입니다.

패턴1·5·15분 예시해석
부하 상승 중4.0, 2.0, 1.0최근 급증 — 원인 진행 중
부하 하강 중0.5, 1.5, 3.0이미 지나간 스파이크, 회복 중
꾸준히 높음5.0, 5.0, 5.0만성 과부하, 증설·튜닝 대상

코어 수로 나눠서 본다

load 값 하나만으로는 판단할 수 없습니다. CPU 코어 수가 기준선입니다. 코어가 4개면 load 4.0이 "정확히 꽉 찬" 상태입니다. 같은 load 2.0도 1코어면 과부하, 8코어면 여유입니다.

로컬 터미널
nproc                    # 코어 수 확인
uptime                   # load average 3개 출력
OUTPUT
8
 15:42:11 up 7 days,  load average: 2.10, 1.80, 0.95

코어 8개에 load 2.10이면 사용률로 보면 약 2.10 / 8, 즉 25% 수준이라 여유롭습니다. load가 코어 수보다 한참 크면(load > 코어수) 작업들이 줄 서서 기다린다는 뜻이라 응답이 느려집니다.

높을 때 무엇을 의심하나

load가 코어 수를 넘는데 top에서 CPU %us(사용자)가 낮다면, CPU가 아니라 I/O 대기가 원인일 가능성이 큽니다. top%wa(I/O wait)를 같이 봐야 합니다.

로컬 터미널
top                      # %us, %sy, %wa 헤더 확인
top -o %CPU              # CPU 많이 먹는 프로세스순 정렬

%wa가 높으면 디스크·네트워크 스토리지가 병목입니다. 이 경우 CPU를 늘려도 소용없고 디스크나 쿼리를 봐야 합니다. 반대로 %us가 높으면 진짜 CPU 연산 부하라 코드·프로세스를 봐야 합니다.

요점 정리

  • load average = CPU 사용률이 아니라 실행 대기 작업의 평균 개수(I/O 대기 포함).
  • 세 숫자는 1·5·15분 — 추세(오르는 중/내리는 중)를 읽는다.
  • 판단 기준은 코어 수: load가 코어 수보다 크면 줄서기 시작.
  • load 높은데 CPU는 한가하면 top%waI/O 병목을 의심.

uptime·top·nproc로 부하를 직접 읽고 병목을 추적하는 실습은 리눅스 트랙에서 회원가입 없이 무료로 익힐 수 있습니다.