Load Average란? Linux 서버의 1분·5분·15분 숫자가 의미하는 것 쉽게 이해하기
Load Average는 CPU 사용률 %가 아니라 1·5·15분 동안 실행·대기 작업의 평균 부하 지표입니다. Core 수와 함께 읽는 법, I/O로 Load만 높은 경우까지 초보 기준으로 정리합니다.
Linux에서 `load average: 1.20, 3.50, 8.10`을 보면 CPU 사용률 %처럼 보이기 쉽습니다. 하지만 Load Average는 CPU 사용률이 아닙니다. 일정 시간 동안 실행 중이거나 실행 기회를 기다리는 작업의 평균적인 수를 보여주는 부하 지표입니다. Linux에서는 Runnable뿐 아니라 일부 Uninterruptible Sleep(I/O 대기 `D` 상태)도 포함될 수 있습니다.
load average: 1.20, 3.50, 8.10 → 최근 1분 · 5분 · 15분 ≠ CPU 1.20% / 3.50% / 8.10%
계산대 비유 · Core 수와 함께 읽기
계산대 4개에 손님 4명이면 대기 없이 처리합니다. 손님이 8명이면 4명은 계산 중·4명은 기다립니다. CPU 4 Core에 실행하려는 작업이 8개면 비슷합니다. Load `1`이 높은지 낮은지는 Logical CPU(Core) 수와 함께 봐야 합니다. 1 Core에서 Load 2는 경쟁이 클 수 있고, 8 Core에서 Load 2는 여유가 있을 수 있습니다. 같은 Load 8도 2 Core·8 Core·32 Core에서 의미가 다릅니다.
출발점: Load ÷ Logical CPU 수 4 Core + Load 2 → 상대적으로 여유 4 Core + Load 8 → CPU 대기 의심 (단정 금지)
1·5·15분 추세 · CPU Usage와의 차이
세 숫자는 단순 산술 평균보다 최근 상태에 무게가 실린 지수 이동 평균 계열입니다. 공식보다 증가·감소 흐름이 중요합니다. `10, 3, 1`은 최근 Spike, `1, 5, 10`은 완화, `8, 8.2, 8.1`은 지속 부하에 가깝습니다. CPU Usage는 「명령어를 얼마나 바쁘게 실행했는지 %」이고 Load는 「실행·관련 대기 작업 수에 가까운 부하」입니다. 1 Core에서 A만 있어도 CPU 100%·Load≈1일 수 있고, B가 추가되어도 CPU는 100%인데 Load≈2로 올라갈 수 있습니다. 포화 뒤 얼마나 더 기다리는지를 Load가 보여 줍니다.
CPU Low + Load High · I/O · Uninterruptible Sleep
Linux Load에는 Uninterruptible Sleep(`D`)이 포함될 수 있어, CPU 20%인데 Load 20인 상황이 납니다. Disk·Storage가 느리면 많은 Process가 I/O를 기다리며 Load만 커집니다. 이때 Core만 Scale Up해도 해결되지 않을 수 있습니다. Load 높음 → CPU? Disk? Network Storage?를 나누고, CPU Usage·I/O Wait·Run Queue·Disk Latency·Process 상태·서비스 Latency를 함께 봅니다. CPU Scheduling·Resource Contention과도 이어집니다.
Load High + CPU High → CPU Saturation 의심 Load High + CPU Low → I/O · Kernel Wait 확인 Load Low + Latency 높음 → DB·API·Single-Thread 병목 가능
서비스 목표 · Queue · Worker · Auto Scaling
Batch는 Core 근처 Load가 정상에 가깝고, Web은 포화 시 Tail Latency가 급증할 수 있습니다. Capacity에 가까워질수록 Queueing Theory처럼 대기가 커집니다. Runnable·Worker가 과도하면 Context Switching·Cache 경쟁이 늘고, Worker를 줄였는데 빨라지기도 합니다. Cron이 한순간에 몰리면 Spike가 납니다 — 시작 시각 분산·Jitter. Auto Scaling에 Load만 쓰면 Disk 장애 때 서버만 늘려 Storage를 더 압박할 수 있습니다. Container·K8s는 Host Load와 Pod Quota를 구분해야 합니다. OS Load ≠ Application Queue — Thread Pool·Request Queue도 함께 봅니다(Starvation).
초보 FAQ
세 숫자는?
최근 1분·5분·15분 Load입니다. `uptime`·`top`에서 볼 수 있습니다.
Load 4 = CPU 400%?
아닙니다. %가 아닙니다. Core 수·I/O·Latency와 함께 봅니다.
Alert는?
모든 서버에 `Load > 5` 고정은 위험합니다. Core 대비·지속 시간·CPU·Latency·Error Rate를 조합합니다. 서버 모니터링·503과도 연결됩니다.
SEO와 직접 관련?
SEO 전용 지표는 아닙니다. 과부하로 Timeout·5xx가 늘면 접근성·UX에 간접 영향이 있을 수 있습니다.
정리
Load Average ≠ CPU 사용률 %입니다. 1·5·15분으로 부하 추세를 보고, 숫자는 반드시 CPU Capacity와 함께 해석합니다. Load 높음만으로 CPU Scale Up을 단정하지 말고 Usage·Disk I/O·Process·서비스 Latency를 확인합니다. `top` 화면에서 CPU는 하나의 %가 아니라 `user`·`system`·`idle`·`iowait`처럼 나뉩니다. 「100%」가 사용자 프로그램 계산인지, Kernel인지, I/O 대기인지에 따라 의미가 달라집니다. 이처럼 CPU 시간이 어떤 종류의 작업에 쓰이는지 구분해서 보는 것을 이해하려면 먼저 CPU Utilization(프로세서 사용률)이 무엇인지 알아야 합니다.