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

서버모니터링 top실무9편: 화면으로 출력되는 프로세스들의 정보항목들에 대한 표시순서와 표시항목 조절하기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

서버모니터링 top실무9: 화면으로 출력되는 프로세스들의 정보항목들에 대한 표시순서와 표시항목 조절하기

 

 

 

 

 

필자는 이번 top 설명 앞부분에서 프로세스 정보항목이 모두 26가지가 있다라고 이미 설명하였다.

 

 

 

 그런데 top실행화면에서 기본적으로 보여주는 항목은 12가지이다.

 

 

 

 이제 우리는 26가지의 각각의 항목에 대해서 어떻게 확인할 수 있는가에 대해서 알아보도록 하자.

 

지금까지의 예에서 설명한 바와같이 시스템의 운영현황을 확인하고 프로세스관리를 할 수 있는 top의 결과로 볼 수 있는 프로세스정보들의 기본항목들은 다음과 같다.

 

 

 

 

 

PID   USER   PR  NI  VIRT  RES  SHR  S  %CPU  %MEM   TIME+   COMMAND

 

그리고 아래의 top실행의 기본결과와 같이 위의 항목들이 순서대로 나타나고 있다는 것도 잘 알고 있으리라 생각한다.

 

 

 

 아래의 결과에서 프로세스 항목의 정보들이 출력되는 순서를  확인하기 바란다.

 

 

 

 

 

top - 01:37:05 up  6:51,  3 users,  load average: 0.00, 0.07, 0.35

Tasks: 104 total,   2 running, 102 sleeping,   0 stopped,   0 zombie

Cpu(s):  0.0%us,  0.7%sy,  0.0%ni, 99.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

Mem:   1033816k total,  1015716k used,    18100k free,    52828k buffers

Swap:  2096472k total,       68k used,  2096404k free,   836744k cached

 

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                            

 2613 root      20   0  2428 1052  840 R  0.7  0.1   0:00.34 top                                

    1 root      20   0  2008  768  564 S  0.0  0.1   0:01.51 init                               

    2 root      15  -5     0    0    0 S  0.0  0.0   0:00.00 kthreadd                           

    3 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 migration/0                        

    4 root      15  -5     0    0    0 S  0.0  0.0   0:06.62 ksoftirqd/0                        

    5 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/0

 

 

 

이번 예에서는 top의 결과로 출력되는 이들 항목들의 순서를 변경하는 예를 보도록 하겠다.

 

 

 

  위의 top실행화면에서 o를 입력하면 아래와 같이 프로세스 정보들이 출력될 순서를 변경할 수 있는 편집화면이 나온다.

 

 

 

 

 

Current Fields:  AEHIOQTWKNMbcdfgjplrsuvyzX  for window 1:Def

Upper case letter moves field left, lower case right

 

* A: PID        = Process Id

* E: USER       = User Name

* H: PR         = Priority

* I: NI         = Nice value

* O: VIRT       = Virtual Image (kb)

* Q: RES        = Resident size (kb)

* T: SHR        = Shared Mem size (kb)

* W: S          = Process Status

* K: %CPU       = CPU usage

* N: %MEM       = Memory usage (RES)

* M: TIME+      = CPU Time, hundredths

  b: PPID       = Parent Process Pid

  c: RUSER      = Real user name

  d: UID        = User Id

  f: GROUP      = Group Name

  g: TTY        = Controlling Tty

  j: P          = Last used cpu (SMP)

  p: SWAP       = Swapped size (kb)

  l: TIME       = CPU Time

  r: CODE       = Code size (kb)

  s: DATA       = Data+Stack size (kb)

  u: nFLT       = Page Fault count

  v: nDRT       = Dirty Pages count

  y: WCHAN      = Sleeping in Function

  z: Flags      = Task Flags <sched.h>

* X: COMMAND    = Command name/line

 

 

 

 이 화면에서 출력될 순서를 편집하는 방법은 다음과 같다.

 

 

 

 

 

       - 항목의 앞에 있는 영문자들이 각 항목을 편집할 수 있는 문자이다.

 

 

 

 

       - 현재 출력될 순서는 “Current Fields:”에 나와있는 순서이다.

 

 

 

 

       - , 이 문자들의 순서가 각 항목의 출력순서이다.

 

 

 

 

       - 따라서 이 문자들의 순서를 변경하면 각 항목의 출력순서가 변경된다.

 

 

 

 

       - 각 문자의 대문자를 누르면 순서가 왼쪽으로 이동한다.

 

 

 

 

       - 각 문자의 소문자를 누르면 순서가 오른쪽으로 이동한다.

 

 

 

 

 

위와 같은 방법으로 “Current Fields”의 각 문자들의 순서를 변경하면 된다.

 

 

 

 필자는 아래와 같이 PID필드를 3번째로 보내고 %CPU필드와 %MEM필드의 순서를 바꾸었다.

 

 

 

 

 

Current Fields:  EHAIOQTWNKMbcdfgjplrsuvyzX  for window 1:Def

Upper case letter moves field left, lower case right

 

* E: USER       = User Named

* H: PR         = PriorityId

* A: PID        = Process Id

* I: NI         = Nice value

* O: VIRT       = Virtual Image (kb)

* Q: RES        = Resident size (kb)

* T: SHR        = Shared Mem size (kb)

* W: S          = Process Status

* N: %MEM       = Memory usage (RES)

* K: %CPU       = CPU usageage (RES)

* M: TIME+      = CPU Time, hundredths

  b: PPID       = Parent Process Pid

  c: RUSER      = Real user name

  d: UID        = User Id

  f: GROUP      = Group Name

  g: TTY        = Controlling Tty

  j: P          = Last used cpu (SMP)

  p: SWAP       = Swapped size (kb)

  l: TIME       = CPU Time

  r: CODE       = Code size (kb)

  s: DATA       = Data+Stack size (kb)

  u: nFLT       = Page Fault count

  v: nDRT       = Dirty Pages count

  y: WCHAN      = Sleeping in Function

  z: Flags      = Task Flags <sched.h>

* X: COMMAND    = Command name/line

 

 

 

 

그런 다음 다시 top화면으로 돌아와 보면 위에서 설정한 필드순서대로 적용되어 있다는 것을 확인할 수 있다.

 

 

 

 

 

top - 01:42:46 up  6:57,  3 users,  load average: 0.00, 0.02, 0.23

Tasks: 105 total,   2 running, 103 sleeping,   0 stopped,   0 zombie

Cpu(s):  0.0%us,  0.1%sy,  0.0%ni, 99.9%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

Mem:   1033816k total,  1015716k used,    18100k free,    52852k buffers

Swap:  2096472k total,       68k used,  2096404k free,   836744k cached

 

USER      PR   PID  NI  VIRT  RES  SHR S %MEM %CPU    TIME+  COMMAND                            

root      20  1728   0  3628  924  808 S  0.1  0.0   0:07.74 hald-addon-stor                    

root      15   150  -5     0    0    0 S  0.0  0.0   0:06.09 ata/0                              

root      20  1906   0  9980  916  596 S  0.1  0.0   0:03.37 kerneloops                         

root      39  2277  19 10388 2972 2372 R  0.3  0.0   0:46.16 sshd                               

root      20  1767   0 62468  28m 6096 S  2.8  0.0   0:04.27 setroubleshootd                    

root      20  2601   0 28072  10m 6812 S  1.1  0.0   0:00.28 httpd                              

root      20  1730   0  3628  920  804 S  0.1  0.0   0:01.02 hald-addon-stor                    

gdm       20  2146   0 49400  15m  10m S  1.5  0.0   0:02.60 gdm-simple-gree

 

 

 

 

이로써 원하는 필드의 정보를 원하는 순서대로 top화면을 구성할 수 있다는 것을 알았다.

 

 

 

 

 

이번에는 각 필드들을 화면으로 표시하거나 표시하지 않을 수 있는 방법에 대해서 알아보자. 앞의 예에서 많이 봐왔듯이 시스템 모니터링 툴인 top을 실행한 후에 그 결과화면을 확인해보면 시스템에 관한 여러가지 정보들과 함께 실행중인 프로세스들을 볼 수 있다.

 

 

 

 

 

, top의 실행결과 프로세스에 관련된 기본정보는 아래와 같이 12가지 필드이다.

 

 

 

.

 

PID   USER   PR  NI  VIRT  RES  SHR  S  %CPU  %MEM   TIME+   COMMAND

 

(위의 각 필드들에 대한 정보들은 앞의 예에서 모두 설명하였음. 위의 각 필드에 대한 자세한 설명은 앞부분의 설명을 참조 바람 )

 

흔히 우리는 top명령의 결과로 확인 가능한 프로세스의 필드들은 위의 필드뿐이라고 생각한다.

 

 

 

  이미 설명하였듯이 현재 실행중인 프로세스에 대한 필드들은 모두 26가지이다.

 

 

 

  26가지의 프로세스관련 필드정보들 가운데 top의 기본결과로 보여주는 프로세스 기본필드가 위와 같이 12가지이다.

 

 

 

  , top의 결과로 확인할 수 있는 프로세스 필드정보의 나머지 14가지는 옵션에서 선택적으로 확인할 수 있다는 의미가 된다.

 

 

 

 

 

또한 현재 보여지고 있는 프로세스의 12가지 필드들도 기본화면에서 감출 수 있으며 보이지 않던 필드들도 보이게 설정할 수도 있다.

 

 

 

 

 

다음 예는 프로세스들에 대한 26가지 필드들 중에 어떤 필드를 top화면에서 보이도록 할 것인가를 편집하기 위하여 top을 실행한 화면에서 f를 입력한 것이다.

 

 

 

 , top을 실행한 기본화면에서 f를 입력하면 다음과 같이 프로세스들의  필드들을 편집할 수 있는 화면이 나온다.

 

 

 

 

 

Current Fields:  AEHIOQTWKNMbcdfgjplrsuvyzX  for window 1:Def

Toggle fields via field letter, type any other key to return

 

* A: PID        = Process Id

* E: USER       = User Name

* H: PR         = Priority

* I: NI         = Nice value

* O: VIRT       = Virtual Image (kb)

* Q: RES        = Resident size (kb)

* T: SHR        = Shared Mem size (kb)

* W: S          = Process Status

* K: %CPU       = CPU usage

* N: %MEM       = Memory usage (RES)

* M: TIME+      = CPU Time, hundredths

  b: PPID       = Parent Process Pid

  c: RUSER      = Real user name

  d: UID        = User Id

  f: GROUP      = Group Name

  g: TTY        = Controlling Tty

  j: P          = Last used cpu (SMP)

  p: SWAP       = Swapped size (kb)

  l: TIME       = CPU Time

  r: CODE       = Code size (kb)

  s: DATA       = Data+Stack size (kb)

  u: nFLT       = Page Fault count

  v: nDRT       = Dirty Pages count

  y: WCHAN      = Sleeping in Function

  z: Flags      = Task Flags <sched.h>

* X: COMMAND    = Command name/line

 

 

 

여기서 편집하는 방법을 정확하게 알고있어야 한다.

 

 

 

 처음 보면 어렵게 느끼겠지만 한번만 해본다면 간단하다는 것을 알 수 있을 것이다.

 

 

 

 

 

, 위의 A부터 X까지의 각 항목은 top화면에서 보여질 수 있는 프로세스의 필드항목들 이다.

 

 

 

  그리고 이들 항목들 가운데 *표시된 항목만 현재 top화면에서 보여주는 것이다.

 

 

 

  이 부분을 정확하게 이해하기 바란다.

 

 

 

 

 

결론적으로 위의 26가지 프로세스 필드항목들 가운데 top화면에서 보여질 항목들에 *를 표시하면 된다는 것을 의미한다.

 

 

 

  이들 항목들에 *표시하는 방법은 다음과 같다.

 

 

 

 

 

-  항목의 앞에 있는 영문자들이 각 항목에 *표를 하는 문자들이다.

 

 

 

 

-  각 항목의 앞에 있는 문자들은 토글(toggle) *를 나타내거나 제거할 수 있다.

 

 

 

 

-  이렇게 top결과화면에 나타내고자 하는 항목에 *표를 하면된다.

 

 

 

 

 

위의 화면에서는 필자는 다음과 같은 항목에 있는 *표를 제거하였다.

 

 

 

 

 

- q를 눌러서RES 필드에서 *표시를 제거

- t를 눌러서 SHR필드에서 *표시를 제거

 

또한 필자는 아래의 필드들에 *표시를 추가하였다.

 

 

 

 

 

- p를 눌러서 SWAP 필드에 *표시를 함.

- r를 눌러서 CODE필드에 *표시를 함.

 

Current Fields:  AEHIOqtWKNMbcdfgjPlRsuvyzX  for window 1:Def

Toggle fields via field letter, type any other key to return

 

* A: PID        = Process Id

* E: USER       = User Name

* H: PR         = Priority

* I: NI         = Nice value

* O: VIRT       = Virtual Image (kb)

  q: RES        = Resident size (kb)

  t: SHR        = Shared Mem size (kb)

* W: S          = Process Status

* K: %CPU       = CPU usage

* N: %MEM       = Memory usage (RES)

* M: TIME+      = CPU Time, hundredths

  b: PPID       = Parent Process Pid

  c: RUSER      = Real user name

  d: UID        = User Id

  f: GROUP      = Group Name

  g: TTY        = Controlling Tty

  j: P          = Last used cpu (SMP)

* P: SWAP       = Swapped size (kb)

  l: TIME       = CPU Time

* R: CODE       = Code size (kb)

  s: DATA       = Data+Stack size (kb)

  u: nFLT       = Page Fault count

  v: nDRT       = Dirty Pages count

  y: WCHAN      = Sleeping in Function

  z: Flags      = Task Flags <sched.h>

* X: COMMAND    = Command name/line

 

 

 

 

필자는 이와 같이 r개의 항목에서 *를 제거하고 2개의 항목에 *를 표시하였다.

 

 

 

 결론적으로 top 실행으로 확인할 수 있는 프로세스의 기본정보에서 위의 2개항목이 빠지고 추가한 2개의 항목이 새로 보여질 것이다.

 

 

 

 그 결과가 아래에 있다.

 

 

 

 

 

top - 01:53:13 up  7:07,  3 users,  load average: 0.00, 0.00, 0.09

Tasks: 105 total,   2 running, 103 sleeping,   0 stopped,   0 zombie

Cpu(s):  0.0%us,  0.1%sy,  0.0%ni, 99.9%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

Mem:   1033816k total,  1015840k used,    17976k free,    52892k buffers

Swap:  2096472k total,       68k used,  2096404k free,   836744k cached

 

  PID USER      PR  NI  VIRT S %CPU %MEM    TIME+  SWAP CODE COMMAND                            

 1728 root      20   0  3628 S  0.0  0.1   0:07.93 2704   20 hald-addon-stor                    

  150 root      15  -5     0 S  0.0  0.0   0:06.24    0    0 ata/0                              

 1906 root      20   0  9980 S  0.0  0.1   0:03.45 9064   20 kerneloops                          

 1767 root      20   0 62468 S  0.0  2.8   0:04.33  32m    4 setroubleshootd                    

 2146 gdm       20   0 49400 S  0.0  1.5   0:02.65  32m  256 gdm-simple-gree                    

 2619 root      20   0  2428 R  0.0  0.1   0:00.05 1376   60 top                                

    6 root      15  -5     0 S  0.0  0.0   0:00.62    0    0 events/0

 

 

 

 

위의 화면과 top의 기본화면을 잘 비교해 보기 바란다.

 

 

 

 ,  top의 기본결과 화면에서 볼 수 있었던 RES, SHR필드는 보이지 않고 top의 기본결과 화면에서 볼 수 없었던 SWAP필드와 CODE필드가 보여지고 있다는 것을 알 수 있다.

 

 

 

 

 

이렇게 모두 26개 필드의 표시순서를 조절할 수도 있고 각 필드의 화면표시 여부를 결정할 수도 있다는 것을 알았다.

 

관련자료

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

공지사항


뉴스광장


  • 현재 회원수 :  60,045 명
  • 현재 강좌수 :  35,861 개
  • 현재 접속자 :  80 명