본문 바로가기
Linux/Linux

Linux) 짧은 시간에 빠르게 서버 상태 파악하기(1)

by LILO 2021. 5. 9.
반응형

서버 상태 파악하기

 

처음 보는 서버나 많이 접하지 않아서 낯설은 서버들을 접하는 경우가 일을 하다 보면 많이들 생길 것입니다.

아래의 명령으로 모든 것을 알 수는 없지만 대략적으로 서버가 어떤 자원을 많이 사용하고 있고 어떤 솔루션이 사용되고 있는 서버인지를 알아가는 단계라고 생각하시면 좋을 것 같습니다.

 

처음 가서 서버 상태를 대략적으로 본 후 만약 모니터링 툴을 따로 가지고 있다면 추가적으로 보는 것이 좋습니다.

보통 Jennifer Soft의 Jennifer, Prometheus+Grafana, Zabbix 등의 모니터링 툴을 많이 사용합니다. 

(APM: Jennifer Soft의 Jennifer, Opennaru의 KHAN 등)

 

 

 

 

 

서버 상태 파악하기 - LAB

 

간단한 서버 성능 지표를 보기 위해 아래의 패키지를 설치해줍니다.

 

# yum install sysstat

 

 

해당 패키지에는 sar, vmstat, iostat 등 현재 리소스 상태 혹은 타임 스태프별로 성능 지표를 보기 적합한 명령어들이 있습니다.

설치가 완료됐으면 본격적으로 서버 상태를 확인하기 시작합니다.

 

 

 

 

먼저, 서버가 언제 마지막으로 재기동된 날짜 및 Load Average 지표를 확인하는 명령어를 입력합니다.

# uptime
# grep -c processor /proc/cpuinfo

 

 

이 서버는 1일 전에 22시 57분에 재기동을 했고 현재 1명의 유저가 접속중인 것으로 확인됩니다.

Load Average는 0.0X대로 상당히 준수한 지표를 보이고 있습니다. 

 

가장 앞에 "22:27:57"은 "date" 명령어, Uptime 시간은 "/proc/uptime"에 초 단위로 표기 된 것을 사람이 보기 쉬운 시간으로 변경하여 우리에게 제공됩니다.

Load Average 역시 "/proc/loadavg"의 수치를 가져와서 우리에게 제공합니다.

 

Load Average 값은 부하 수치와 직접적으로 관련된 수치이기 때문에 주의깊게 봐야됩니다.  일단 해당 서버의 CPU 코어 수는 1 Core인 것으로 보이기 때문에 정상 범위 기준 값을 1로 잡습니다.

"도대체 1이 무엇일까?" 라는 생각이 들긴 합니다. CPU 마다 작업의 처리를 기다리는 프로세스가 1개씩 있으면 부하 수치가 정상적이라고 판단을 내립니다.. 하지만 여기서 WAIT Process가 2개가 되어버리면 Load Average 값은 2가 됩니다. 실질적으로 이 서버는 처리를 기다리는 프로세스가 1개 초과가 지속적으로 유지되면 위험하다는 것입니다. 

 

잠시 Load가 높아질 수도 있는거 아닌가요?  Load Average는 1분, 5분, 15분 단위로 표기되기 때문에 만약 5분과 15분의 값이 지속적으로 높게 나온다면 정말로 위험한 것입니다. 5분과 15분의 평균 Load 값이 높다면 그건 잠시 높아지는게 아니라고 판단이 가능해지기 때문입니다.

 

# date
# cat /proc/uptime
# cat /proc/loadavg

 

여기서 숙지해야 될 것은 Load Average 값과 재기동 날짜입니다. 재기동이 날짜가 최근으로 잡혀져있다면 최근에 재기동한 이력이 있는지 물어봐야됩니다. 추가로 너무 오랫동안 재기동을 하지 않아도 따로 체크를 해놓는 것이 좋습니다.

 

 

 

시스템 메세지를 확인해서 부팅시부터 시작해서 커널 메세지에 이상이 없는지 확인합니다.

 

# dmesg

 

 

이 서버는 "enp0s3"이라는 Network Interface가 끊긴 이력이 있는 것으로 보입니다. 추가로 Log를 봐야될 것으로 보입니다. 이러한 굵직한 것들이 나오기 떄문에 서버 상태를 빨리 파악하는데 많은 도움이 됩니다.

 

 

 

반응형