리눅스 Load Average란?
ℹ️이 콘텐츠에는 광고가 포함되어,판매 발생 시 수익이 발생합니다.(네이버 쇼핑 커넥트, 아마존 어필리에이트, 애드센스 등)리눅스에서 top 명령어 또는 uptime 명령어로 1분, 5분, 15분의 시스템의 평균 로드 지표인 Load Average를 통해 평균 부하 정도를 알 수 있습니다. Load Average는 CPU에 어느 정도의 일이 쌓이는지를 나타내는 것으로 정의 내릴 수 있습니다.
✅ 리눅스 Load Average의 이해
~]# uptime                                                                                                         
 10:36:12 up 5 days, 17:35,  1 user,  load average: 2.03, 20.17, 15.09
 ⓐ현재 시간|ⓑ부팅 후 5일 17:35동안 가동| ⓒ시스템에 로그인한 사용자 수|ⓓ최근 1분,5분,15분동안 시스템의 평균 부하율  세 개의 숫자 (2.03, 20.17, 15.09)는 시스템에서의 1분,5분,15분 동안의 평균 부하를 나타 냅니다. 1코어의 단일 CPU 환경일 경우 평균 부하 1이 의미하는 것은 100% CPU를 사용하고 있다는 것을 의미합니다. 2코어일 경우는 50%, 4코어일 경우 25%를 사용하는 것을 의미합니다.
결국 단일 CPU 환경에서 부하 1과 4개의 CPU에서 부하가 4라는 것은 자원을 사용하는 양적인 측면에서 동일한 것으로 이해할 수 있습니다.
✅ 평균 부하가 높은 것의 의미
Load Average의 평균 부하가 높다는 것은 “어떤 이유로 높은가?”로 원인을 찾을 수 있습니다.
시스템의 주요 리소스는 CPU, RAM, 디스크 I/O 3가지와 네트워크를 볼 수 있으며, 서버에서의 문제 발생이 원인일 경우 시스템 엔지니어의 경우 RAM, 또는 CPU를 추가할지를 고민할 수 있고, 개발자의 경우 새로 수정한 코드가 느리게 실행되는지 체크를 고려할 수 있습니다.
✅ 부하의 원인 파악하기
구체적인 부하의 원인을 파악하기 위해 vmstat 명령어를 활용할 수 있습니다.
vmstat 2
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 1077988   3124 321444    0    0     2     1   47  134  0  0 100  0  0
 0  0      0 1077988   3124 321444    0    0     0     0   47  133  0  0 100  0  0
 1  0      0 1077988   3124 321444    0    0     0     0   48  139  0  0 100  0  0
 4  0      0 1077988   3124 321444    0    0     0     0   44  122  0  0 100  0  0
 0  0      0 1077988   3124 321444    0    0     0     0   49  136  0  0 100  0  0
 1  0      0 1077988   3124 321444    0    0     0     0   46  126  0  0 100  0  0
 0  0      0 1077988   3124 321444    0    0     0     0   44  128  0  0 100  0  0
 0  0      0 1077988   3124 321444    0    0     0     0   46  133  0  0 100  0  0
 1  0      0 1077988   3124 321444    0    0     0     0   45  126  0  1 100  0  0
 0  0      0 1077988   3124 321444    0    0     0     0   48  133  0  0 99  0  0
 0  0      0 1077988   3124 321444    0    0     0     0   45  132  0  0 100  0  0
 0  0      0 1077988   3124 321444    0    0     0     0   46  129  0  0 100  0  0
 0  0      0 1077988   3124 321444    0    0     0     0   49  135  0  0 100  0  0
 0  0      0 1077988   3124 321444    0    0     0     0   46  127  0  0 100  0  0b 열에 있는 프로세스가 많이 표시되는 경우 I/O 처리 과정의 문제를 체크 해 볼 수 있겠습니다.