리눅스 Load Average란?

공정위 광고 문구 Ver 3.1
공정위 광고 문구 Ver 3.2(모바일 전용)

리눅스에서 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%를 사용하는 것을 의미합니다.

리눅스 uptime 명령어를 통한 Load Average 확인하기

결국 단일 CPU 환경에서 부하 1과 4개의 CPU에서 부하가 4라는 것은 자원을 사용하는 양적인 측면에서 동일한 것으로 이해할 수 있습니다.

✅ 평균 부하가 높은 것의 의미

Load Average의 평균 부하가 높다는 것은 “어떤 이유로 높은가?”로 원인을 찾을 수 있습니다.

  • 평균 부하 원인
  • CPU에 의한 부하: 프로세스가 CPU 자원을 사용하기 전 대기 상태.
  • RAM에 의한 부하: 높은 RAM 사용으로 RAM 영역이 아닌 Swap 영역으로 옮겨진 경우.
  • 디스크 I/O에 자원이 집중된 경우

시스템의 주요 리소스는 CPU, RAM, 디스크 I/O 3가지와 네트워크를 볼 수 있으며, 서버에서의 문제 발생이 원인일 경우 시스템 엔지니어의 경우 RAM, 또는 CPU를 추가할지를 고민할 수 있고, 개발자의 경우 새로 수정한 코드가 느리게 실행되는지 체크를 고려할 수 있습니다.

✅ 부하의 원인 파악하기

구체적인 부하의 원인을 파악하기 위해 vmstat 명령어를 활용할 수 있습니다.

  • r과 b 열에서 각각의 프로세스 및 확인할 수 있습니다.
  • r – The number of processes waiting for run time: 현재 실행되고 있는 프로세스의 갯수
  • b – The number of processes in uninterruptible sleep: I/O를 위해 대기열에 있는 프로세스의 개수
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  0

b 열에 있는 프로세스가 많이 표시되는 경우 I/O 처리 과정의 문제를 체크 해 볼 수 있겠습니다.

리눅스 TOP 명령어: 명령줄 인터페이스(CLI-Command-Line Interface)

ℹ️ 제휴 안내
본 사이트의 콘텐츠에는 제휴 링크가 포함되어 있습니다. 방문자가 이 링크를 통해 상품 또는 서비스를 구매하면 본 사이트는 판매처로부터 수수료를 지급받습니다. 이 과정에서 구매자가 지불하는 금액(이벤트 할인 시 금액이 내려갑니다↓)은 오르지 않습니다. 게시된 가격·할인·재고 정보는 작성 시점 기준이며 실제와 다를 수 있으므로, 구매 전 판매처에서 최종 확인하시기 바랍니다. 상품 선정과 평가는 자체 기준에 따라 작성되며, 수수료 지급 여부가 소개 순서나 평가 내용에 영향을 주지 않습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Prove your humanity: 6   +   4   =