리눅스

uptime 평균 부하 값

나뭇빛자루 2021. 2. 12. 20:18
반응형

Load Average 

평균 부하의 값이 다. 

Uptime 으로 확인이 가능함  

21:22:35 up 1 day,  2:26,  3 users,  load average: 0.58, 1.16, 1.29 

Load average : 이 후에 나오는 것들은 1 5 15분 동안 실행/대기중인 PS 평균 개수 

 

이 수치는 CPU core에 따라 다르지만 

높으면 높을 수록 부하가 많이 걸린다는 뜻임

 

추적해서 찾아 내는 법 

Uptime 디버깅 코드를 추출해 낸다. 

strace의 사용방법 

-strace [사용명령어] : 바이너리를 추적할 수 있음 

#strace -e [시스템 콜] [사용명령어] : strace  주어진 바이너리의 시스템에 특정 콜을 보여줌 

#strace -o [파일이름] [사용명령어] : 당 파일에 저장시킴 

 

strace -s 65536 -f -t -o uptime_dump uptime 

만들어진 덤프 파일을 확인해본다. 

 

하단부에 시스템콜 open 부분에 /proc/loadavg 라는 파일을 볼 수 있는데 여기서 불러오는 것 임을 알 수 있다. 

 

정확한 부하의 원인을 알아보자 

#vmstat 1을 쳐서 확인을 해보자 

 

-r은 실행되기를 기다리거나 현재 실행되고 있는 프로세스의 개수 

-b는 I/O를 위해 대기열에 있는 프로세스의 개수를 말한다. 

 

#vmstat 로 확인해 보면 CPU가 일으키는 Load Average인지 아니면 I/O가 일으키는 건지 확인 해볼 수 있다 b의경우 1이나 2정도는 낮은편에 속하지만 문제를 일으킬 수 있음 

지속적으로 I/O를 일으키는 프로세스가 시스템에 존재하는 것을 미하며 의도적으로 불필요한 PS일으킬 가능성이 있음. 

 

지속적인 모니터링이 필요함.  

 

 

해당 확인 스크립트 

#!/bin/bash 

 

monitor(){ 

        while : 

        do 

                clear 

                free -h 

                uptime 

                vmstat 

 

                ss |grep (찾고싶은 서비스)

                sleep 3 

        done 

} 

Monitor 

반응형