Linux Load Average가 높은 이유와 확인하는 방법

Linux 서버를 운영하다 보면 uptime이나 top 명령어에서 Load Average 값이 갑자기 높아지는 경우가 있습니다. 많은 사람들이 Load Average를 CPU 사용률과 같은 의미로 생각하지만 실제로는 전혀 다른 개념입니다.

CPU 사용률이 낮은데도 Load Average가 높을 수 있고, 반대로 CPU 사용률이 높아도 Load Average는 낮을 수도 있습니다. 따라서 Load Average의 의미를 정확하게 이해해야 서버의 현재 상태를 올바르게 분석할 수 있습니다.

이번 글에서는 Linux Load Average가 무엇인지, 높아지는 원인과 확인 방법, 그리고 문제를 해결하는 순서를 자세히 알아보겠습니다.

Load Average란 무엇인가?

Load Average는 CPU가 현재 처리 중이거나 CPU를 기다리고 있는 작업(Process)의 평균 개수를 의미합니다.

다음 세 가지 평균값으로 표시됩니다.

  • 최근 1분 평균
  • 최근 5분 평균
  • 최근 15분 평균

예를 들어 다음과 같이 표시됩니다.

load average: 1.25, 2.31, 3.15

첫 번째 값은 최근 1분, 두 번째는 최근 5분, 세 번째는 최근 15분 동안의 평균 Load입니다.

Load Average가 높아지는 대표적인 원인

다음과 같은 경우 Load Average가 증가할 수 있습니다.

  • CPU 사용량 증가
  • 디스크 I/O 지연
  • NFS 응답 지연
  • 프로세스 과다 실행
  • 무한 반복 프로그램
  • 데이터베이스 과부하
  • 대용량 압축 작업
  • 백업 작업 실행

CPU만이 아니라 I/O 대기 시간도 Load Average를 증가시킬 수 있습니다.

1. 현재 Load Average 확인하기

가장 먼저 현재 값을 확인합니다.

uptime

또는

cat /proc/loadavg

현재 서버의 부하 상태를 바로 확인할 수 있습니다.

2. CPU 코어 개수 확인하기

Load Average는 CPU 코어 개수와 함께 판단해야 합니다.

nproc

또는

lscpu

예를 들어 CPU가 8코어라면 Load Average가 8 이하인 경우는 일반적으로 처리 가능한 수준입니다.

3. CPU 사용률 확인하기

CPU 사용률도 함께 확인합니다.

top

다음 항목을 확인합니다.

  • us
  • sy
  • id
  • wa

CPU 사용률이 높다면 CPU 연산이 원인일 가능성이 있습니다.

4. I/O Wait 확인하기

wa 값이 높다면 디스크가 병목일 가능성이 있습니다.

vmstat 1

또는

iostat -xz 1

I/O Wait가 증가하면 CPU가 디스크 작업을 기다리는 상태일 수 있습니다.

5. CPU를 많이 사용하는 프로세스 확인하기

다음 명령어를 실행합니다.

ps aux --sort=-%cpu | head

CPU를 많이 사용하는 프로세스를 쉽게 찾을 수 있습니다.

6. 디스크 사용량 확인하기

디스크 공간 부족도 성능 저하를 유발할 수 있습니다.

df -h

디스크 사용률이 매우 높은 경우 함께 확인하는 것이 좋습니다.

7. 메모리 상태 확인하기

메모리 부족으로 Swap을 사용하면 Load Average가 증가할 수 있습니다.

free -h

Swap 사용 여부도 함께 확인합니다.

8. 현재 실행 중인 프로세스 개수 확인하기

프로세스가 과도하게 많으면 부하가 증가할 수 있습니다.

ps -ef | wc -l

프로세스 수가 평소보다 크게 증가했는지 확인합니다.

9. 시스템 로그 확인하기

시스템 로그에서 오류를 확인합니다.

journalctl -xe

또는

dmesg | tail

디스크 오류나 메모리 관련 메시지가 있는지 확인합니다.

10. 실시간 상태 확인하기

실시간으로 변화를 확인합니다.

top

또는

htop

Load Average가 계속 증가하는지 관찰하는 것이 중요합니다.

Load Average 확인 순서

실무에서는 다음 순서대로 확인하는 것이 효율적입니다.

  1. uptime
  2. CPU 코어 개수 확인
  3. top
  4. vmstat
  5. iostat
  6. ps aux
  7. df -h
  8. free -h
  9. journalctl
  10. dmesg

이 순서대로 확인하면 대부분의 원인을 빠르게 파악할 수 있습니다.

Load Average를 확인할 때 주의할 점

Load Average가 높다고 해서 반드시 CPU 문제는 아닙니다.

디스크 I/O, 메모리 부족, 네트워크 파일 시스템(NFS) 지연도 Load Average를 크게 증가시킬 수 있습니다.

반드시 CPU 사용률과 I/O Wait, 메모리 상태를 함께 확인하는 것이 중요합니다.

자주 묻는 질문

Load Average가 CPU 사용률과 같은 의미인가요?

아닙니다.

Load Average는 CPU를 사용하거나 CPU를 기다리는 작업 수를 의미하며 CPU 사용률과는 다른 개념입니다.

CPU가 4코어인데 Load Average가 8이면 문제가 있나요?

CPU가 동시에 처리할 수 있는 작업보다 많은 작업이 대기하고 있다는 의미이므로 원인 분석이 필요합니다.

CPU 사용률은 낮은데 Load Average만 높습니다.

디스크 I/O나 NFS 응답 지연 등 CPU 외의 원인일 가능성이 높습니다.

마무리

Load Average는 Linux 서버의 전체적인 부하 상태를 판단하는 중요한 지표입니다. 하지만 CPU 사용률과 동일한 개념이 아니므로 uptime만 확인해서 결론을 내려서는 안 됩니다. top, vmstat, iostat, free, journalctl 등을 함께 활용하면 CPU와 디스크, 메모리 중 어느 부분에서 병목이 발생하는지 보다 정확하게 분석할 수 있습니다.

댓글 남기기