-
Linux Load Average로 부하 확인하기커널(Kernel) 2022. 11. 27. 22:17
환경 정보
OS: ubuntu18.04
swap: off
Load Average
Load Average는 R(running)과 D(uninterruptted sleeping) 상태에 있는 프로세스를 1분, 5분, 15분마다의 평균 값을 나타낸 것인데, uptime 커맨드 사용시 확인할 수 있다.
Load Average가 높으면 실행 중인 프로세스가 많거나 I/O등을 처리하기 위한 대기 상태에 있다는 것이다.
반대로 말하면 CPU를 많이 쓰는 프로그램을 사용하거나 I/O 리소스를 많이 사용하는 프로그램을 사용하면 Load Average가 높아질 수 있다.
좀 더 구체적으로 말하면 Load Average는 Run queue에 있는 프로세스 수에 의해서 결정이 되는데
이는 CPU core의 갯수에 따라서 다른 의미를 가질 수 있다.
Run Queue에 프로세스가 2개 있다고 했을 때,
코어가 1개인 시스템에서 Run queue에 2개의 프로세스가 있는 경우와
코어가 2개인 시스템에서 각 CPU 코어에 연결된 Run queue에 프로세스가 1개씩 있을 수 있다.
이 때, 일반적으로 후자의 경우가 프로세스 처리 속도가 빠르고 부하가 적다.
즉, 같은 Load average일지라도 CPU core의 갯수에 따라서 다를 수 있다.
각 CPU core와 연결되어 있는 run queue에서 돌아가고 있는 프로세스는 /proc/sched_debug에서 확인할 수 있다.
또한 Load Average를 통해서 시스템에 부하가 걸리고 있는 경우, vmstat를 이용하면 더 구체적으로 어떤 부하가 걸리는지 확인할 수 있다.
여기서 r과 b가 의미하는 것은 다음과 같다.
r: 실행되기를 기다리거나 실행되고 있는 프로세스 수
b: I/O를 위해 대기열에 있는 프로세스 수
Reference
Devops와 SE를 위한 리눅스 커널 이야기
반응형'커널(Kernel)' 카테고리의 다른 글
Linux Swap 영역 정리 (0) 2022.12.04 Linux 메모리 정리(buffer, cache, Active/Inactive, slab) (0) 2022.11.28 Linux Top으로 확인할 수 있는 정보들 (1) 2022.11.21 Linux 시스템 정보 확인하기(BIOS/CPU/Memory/DISK/NIC) (0) 2022.11.21 Linux 커널 정보 확인하기 (0) 2022.11.20