강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

서버모니터링 top의 실행과 제공정보 분석 및 활용방법

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

서버모니터링 top의 실행과 제공정보 분석 및 활용방법

 



먼저, top유틸리티의 실행과 종료방법부터 배워보도록 하겠습니다.  아래의 예와 같이 top유틸리티를 실행하는 방법은 그냥 쉘상태에서 “top”이라고 하시면 됩니다. 

 

그리고 top실행상태에서 top유틸리티를 종료할 때에는 q 또는 CTRL+C키를 눌러서 종료하실 수 있습니다.  아래의 예는 필자가 현재 사용하고 있는 리눅스 시스템에서 top유틸리티를 실행한 것입니다.

 

c63351f61762cae86f59efc982abd11a_1647934139_2533.png
 

 

 

위의 결과로 제공되는 시스템운영에 관한 여러가지 정보들의 의미를 하나씩 설명드리도록 하겠습니다. 

 

위의 top명령의 결과로 확인되는 첫번째 행의 결과는 아래와 같습니다.

 

c63351f61762cae86f59efc982abd11a_1647934156_37.png
 

 

 

이 행의 의미는 시스템의 현재시간(12:23:12)과 시스템이 부팅된 후에 재부팅이나 종료없이 얼마동안 계속 운영이 되고 있는 가(up 3:20)를 알 수 있습니다. 

그리고 현재 로그인된 사용자의 수(1 user), 그리고 시스템의 최근 1, 5, 15분에 대한 각각의 평균부하율(load average: 0.00, 0.00, 0.00)을 나타내고 있습니다. 

 

참고로 위의 첫번째 행의 결과는 uptime명령어의 결과와 동일하다는 것도 알아 두시기 바랍니다.

 

다음은 두번째 행의 결과는 다음과 같습니다.


c63351f61762cae86f59efc982abd11a_1647934186_3111.png

 


두번째 행의 결과는 현재 실행중인 프로세스들의 전체적인 상황을 알려주는 것이 목적입니다. 

, 전체 실행된 프로세스 수(46 precesses), sleeping된 프로세스 수(45 sleeping), 현재 실행되고 있는(running)된 프로세스 수(1 running) , 좀비(zombie)프로세스 수(0 zombie), stopped된 프로세스 수(0 stopped)를 각각 보여줍니다.

 

그리고 다음은 세번째 행의 결과입니다.

 

c63351f61762cae86f59efc982abd11a_1647934211_4176.png
  

 

세번째 행은 CPU의 전반적인 운용상황(CPU states)을 알려주는 것이 목적입니다.  , 사용자가 실행시킨 프로세스의 CPU 사용율(0.0% user)과 시스템자체에서 사용하는 CPU 사용율(0.3% system), 그리고 nice 정책에 의해 사용되고 있는 CPU사용율(0.1% nice),  그리고  입출력 대기상태의 사용율(0.0% iowait),  그리고 사용되지않고 남아있는 CPU사용율(99.3%)을 각각 나타내고 있습니다. 

 

, 위와 같은 CPU의 사용현황으로 파악되는 자료를 가지고 CPU의 추가증설계획이나 업그레이드계획을 세울 수 있습니다.  , 맨 마지막의 idle지표의 특정기간(하루, 일주일, 월단위)동안의 통계결과를 가지고 CPU의 증설 또는 업그레이드 계획을 수립하시면 됩니다.

 

그리고 네번째 행의 결과는 다음과 같습니다.

 

c63351f61762cae86f59efc982abd11a_1647934231_4051.png
 

 

 

네번째 행에서는 시스템의 전반적인 메모리 운용상황을 보여주는 것이 그 목적입니다.  , 전체메모리 용량(255332kbytes av), 프로세스에 의해 사용되고 있는 메모리 사용량(245784kbytes used), 사용되지 않고 남아있는 메모리량(9548kbytes free), 공유메모리량(0kbytes shrd), 버퍼링된 메모리량(65280kbytes buff)의 정보를 각각 보여 줍니다.

 

 

이 정보를 잘 활용하면 현재 시스템의 메모리가 충분한가 부족한가를 알 수 있습니다.  즉 전체 메모리중에서 현재 사용되지 않고 남아있는 메모리의 용량(위의 예에서는 9548kbytes)을 특정기간(하루, 일주일, 월단위)동안에 통계를 내어서 메모리 증설 또는 업그레이드 계획을 수립할 수 있습니다.

그리고 다섯번째 행의 결과는 다음과 같습니다.

 

c63351f61762cae86f59efc982abd11a_1647934248_2158.png
 

 

 

이 행의 목적은 스왑메모리 사용현황을 알려주는 것입니다.  ,  전체 스왑메모리량(3461956kbytes av), 프로세스에 의해 사용된 스왑메모리량(540kbytes used), 남아 있는 스왑메모리량(3461416kbytes free)과 캐싱 메모리량(52336kbytes cached)를 각각 표시하고 있습니다.

 

 

여기에서 알 수 있는 것은 현재 시스템의 스왑메모리 운용상황이므로 스왑메모리가 많이 사용되고 있다라는 의미는 실제메모리(RAM)가 부족하다는 것을 반증하는 것입니다.

 

따라서 시스템 메모리(RAM)의 증설 또는 업그레이드 계획에 스왑메모리의 운용현황도 참고하셔야 합니다.  또한 불가피하게 시스템메모리( RAM)를 증설할 여유가 없는 경우에 스왑메모리 또한 부족하다고 판단되었다면 스왑메모리를 증설해야 합니다.  스왑메모리의 증설과 설정방법에 대한 부분은 이 책의 mkswap, swapon, 그리고 swapoff명령어편을 참조하시기 바랍니다.

 

그리고 여섯번째로 top명령어의 마지막 부분에 나오는 것은 현재 실행중인 프로세스들의 세부정보입니다. 

 

c63351f61762cae86f59efc982abd11a_1647934268_5725.png
 

 

 

,  위의 결과에서 보여지는 각 필드의 의미는 다음과 같습니다.

  .  PID              : 프로세스의 PID

  .  USER             : 프로세스를 실행시킨 사용자

  .  PRI              : 프로세스의 우선순위

  .  NI               : 프로세스의 NICE

  .  SIZE             : 프로세스가 MEMORY를 사용하는 용량

  .  RSS              : 현재 프로세스의 페이지가 메모리에 상주하는 크기

  .  SHARE            : 분할된 페이지용량

  .  STAT             : 프로세스상태

    (S : Sleep, D : uninterruptible sleep,  R : Running,  Z : Zombie, 
     T : stopped or traced, N : positive  nice value, W : swapped out process)

  .  %CPU             : 프로세스가 사용하는 CPU사용율

  .  %MEM             : 프로세스가 사용하는 MEMORY사용율

.  TIME             : 프로세스가 실행된 총 시간

.  CPU              : 여러 개의 CPU중에서 현재프로세스가 사용중인 CPU의 번호

  .  COMMAND          : 프로세스명 (실행명령)

 

이와 같이 top명령어의 기본 결과화면에서는 하나의 프로세스에 대하여 위와 같은 13가지 항목에 대한 정보를 출력해 줍니다.

 


관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,034 명
  • 현재 강좌수 :  35,791 개
  • 현재 접속자 :  236 명