본문 바로가기
리눅스,네트워크

리눅스(Linux) Top 명령어

by 데이널 2023. 10. 13.

리눅스에는 다양한 부가 기능이 있습니다. 그중에서도 간단한 명령어로 시스템의 현황을 알 수 있는 top에 대해서 살펴보도록 하겠습니다. 보통 시스템 관리자들이 top을 이용하여 현재 OS의 상태를 확인하는 작업을 합니다. 주기적으로 CPU 및 메모리 사용량을 나타내 주기 때문에 실시간으로 내용을 확인할 수 있습니다. 

 

 

TOP 명령어 실행

리눅스에서 top 명령어를 실행하는 방법은 CLI 명령어 창에 'top'라고 치고 엔터하면 됩니다. 구성은 전체의 요약 정보와 각 프로세스마다 구체적인 정보로 구성되어 있습니다. 

우선 요약 정보 부터 보시죠.

 

top 명령어 요약 정보
top 명령어 요약 정보

  • 시스템 시간, OS가 살아있는 시간, 접속 유저수
  • 로드에버리지 : 1분, 5분, 15분의 cpu load 이동 평균
  • 타스크 : total 294개, 실행(running) 4개, 290개 대기상태(sleeping)
  • CPU : 유저(us) 18.2%, 커널(sy) 19%, 우선순위설정(ni) 0%, 사용하지 않음(id) 62.4%, IO완료대기(wa) 0.1%, 하드웨어인터럽트(hi) 0%, 소프트웨어인터럽트(si) 0.3%, VM사용(st) 0%
  • 메모리 : total 64G, free 16G, used 36G, buff/cash 12G (IO와 관련되어 사용하는 버퍼 메모리)

다음은 요약 정보 아래에 표시되는 프로세스의 상세 정보입니다. 

 

top 명령어 상세 정보
top 명령어 상세 정보

  • PID : 프로세스 ID이며 프로세스를 구분하기 위한 겹치지 않는 고유한 값
  • USER : 프로세스를 실행한 USER 이름 또는 효과를 받는 USER의 이름
  • PR : 커널에 의해서 실행되는 우선순위
  • NI : PR에 영향을 주는 nice라는 값
  • VIRT : 프로세스가 소비하고 있는 총 메모리(virtual memory)
  • RES : RAM에서 사용중인 메모리(실제 사용 중인 물리 메모리)
  • SHR : 다른 프로세스와 공유 메모리
  • %CPU : 프로세스가 사용하는 CPU 사용률
  • %MEM : 프로세스가 사용하는 메모리 사용률
  • S : 프로세스의 현재 상태, R(running), S(sleeping), I(I/O 대기)
  • TIME+ : 프로세스가 사용한 Total CPU 시간
  • COMMAND : 해당 프로세스를 실행한 커맨드

이렇게 top 명령어를 통해 정보를 보았다면 무엇을 할 수 있을까요? 먼저 요약정보를 통해서는 CPU와 메모리를 얼마나 사용하고 있는지 확인할 수 있습니다. 여기서 너무 많은 자원을 사용하고 있다면 상세 정보인 프로세스를 살펴봅니다. 예를 들어, java와 같이 백그라운드로 돌아야 하는 프로세스가 아닌 실행한 프로세스 중 너무 오랜 시간을 수행하고 있을 경우 kill 해줍니다. 또 CPU와 메모리도 많이 사용하고 있는 잘못된 프로세스가 있다면 kill 시켜서 시스템을 안정화시켜주면 됩니다. 

 

한 가지 주의할 점은 프로세스를 kill 할 때는 kill 하더라도 영향도가 없는지를 먼저 살펴야 합니다. 그리고 다른 사용자들에게 kill 할 것이라는 것을 먼저 공지해 주는 것이 좋습니다. 

 

top 명령어에 대해 좀 더 상세한 정보를 얻고 싶다면 아래 영상을 참조하시기 바랍니다. 

 

리눅스 TOP 명령어 영상