Linux command - nmon

sycho·2023년 12월 16일
0

Linux Commands

목록 보기
6/30

nmon

  • documentation 여기서 설명하는 것 이상으로 유용한 command 및 nmon에서 출력하는 정보에 대한 내용이 써져 있으니 궁금하면 찾아보자.

  • nmon은 Linux랑 AIX system들을 위한 시스템 모니터링 도구다. AIX는 IBM의 POWER 제품군에서 사용하는 UNIX 운영 체제다. 그래서 documentation도 보면 IBM에서 제공중.

  • CPU, 메모리, 네트워크, 디스크, file system, 네트워크 파일 시스템 (NFS) 등등 다양한 것과 관련된 정보를 제공해준다.

  • 나오는 출력물들은 일정 주기마다 갱신이 된다.

  • 이걸 실행하고 싶으면 먼저 설치를 해야 한다. Ubuntu 기준 밑을 수행.

$sudo apt-get install nmon
  • 기본 화면은 다음과 같다.

command

  • c를 누르면 cpu 정보를 알 수 있다. 나오는 정보는 직관적인 편.

  • 가장 많은 cpu자원을 소모하고 있는 process를 파악하고 싶으면, t를 누르면 된다. top-process의 줄임말.

  • 위의 column들에 대해 설명하자면

    • PID : process ID
    • % CPU Used : CPU 사용율
    • Size KB : 사용하는 page들의 크기 (KB단위)
    • Res Set(Size) : 실제 메모리 상에 저장된 data와 text들의 총합
    • Res Text : 실제 메모리 상에 저장된 text 용량
    • Res Data : 실제 메모리 상에 저장된 data 용량
  • n을 누르면 네트워크 관련 통계를 알 수 있다.

  • 위의 column들에 대해 설명하자면

    • I/F Name : 네트워크에서 사용하는 인터페이스 이름이다.
    • Recv=Kb/s : 갱신되는 주기동안에 받은 Data들 (KB 단위)
    • Trans=Kb/s : 갱신되는 주기동안에 전달한 Data들 (KB 단위)
    • packin : 갱신되는 주기동안 받은 packet 수
    • packout : 갱신되는 주기동안 전달한 packet 수
    • insize : 주기동안 받은 packet들의 평균 크기
    • outsize : 주기동안 전달한 packet들의 평균 크기
    • Peak->Recv : data 수신 피크 때의 초당 data (KB 단위)
    • Peak->Trans : data 전달 피크 때의 초당 data (KB 단위)
  • 디스크 관련 정보를 얻고 싶으면, d를 누르면 된다.

  • 위의 column들에 대해 설명하자면

    • Name : 디스크 이름
    • Busy : 주기동안의 평균 디스크 busy율
    • Read-KB/s : 주기동안의 read 관련 op에서의 초당 data 전달율 (KB 단위)
    • Write-KB/s : 주기동안의 write 관련 op에서의 초당 data 수신율 (KB 단위)
    • Transfers/sec : 주기동안의 초당 read/write transfer 처리 횟수.
    • Total Read-MB/s : 주기동안, 모든 disk에서 이루어진 read transfer 관련 용량 (MB 단위)
    • Total Write-MB/s : 주기동안, 모든 disk에서 이루어진 write transfer 관련 용량 (MB 단위)
  • kernel 관련 정보를 얻고 싶으면, k를 누르면 된다.

  • 위의 정보에 대해 설명하자면

    • RunQueue : runnable한 thread들 중, 여유로운 process가 없어 이를 기다리고 있는 thread들의 주기동안의 평균 개수
    • Forks : 주기동안 이루어진 초당 fork 횟수
    • Context Switch : 주기동안 이루어진 초당 context switch 횟수
    • Interrupts : 주기동안 이루어진 초당 interrupt 횟수
    • user : user process CPU 사용률
    • user_nice : nice priority를 가진 user process들의 CPU 사용률
    • system : system (kernel) process들의 CPU 사용률
    • iowait : io operation을 기다리느라 낭비된 CPU 비중
    • irq : interrupt 해결하느라 소모된 CPU 비중
    • softirq : software 차원의 interrupt를 해결하느라 소모된 interrupt 비중
    • steal : OS가 VM등에서 실행되고 있을 때 비자발적으로 뺐긴 CPU 비중
    • guest : OS가 조절하고 있는 guest OS에서 virtual CPU를 가동하는데 소모된 CPU 비중
    • guest_nice : OS가 조절하고 있는, nice priority를 가진 guest OS에서 virtual CPU를 가동하는데 소모된 CPU 비중
    • Load Average : 말 그대로 Load Average. 1/5/15분당 load average.
  • file system 관련 정보를 얻고 싶으면, j를 누르면 된다.

  • 위의 정보에 대해 설명하자면

    • File System : file system 이름
    • Size (MB) : 해당 file system의 크기 (MB 단위)
    • Free (MB) : 해당 file system에서 사용되지 않는 용량 크기 (MB 단위)
    • %Used : file system 사용률
    • Type : file system의 type
    • MountPoint : Local상의 mount point 위치
  • 가상 메모리 관련 정보를 얻고 싶으면, V를 누르면 된다. 대문자인점 유의

  • 위의 정보에 대해 설명하자면

    • nr_dirty : dirty page 개수
    • nr_writeback : writeback page 개수
    • nr_table_pgs : page table용 page 개수
    • nr_mapped : memory mapped된 page 개수
    • slab_reclaim : slab은 kernel object caching에 활용되는 caching mechanism을 일컫는 말인데, 그 중 reclaimable slab memory에 대한 정보다. cache는 알다시피 특정 element가 free될 수 있는데, 그 free 후보군에 해당하는 page들이 얼마나 되는지를 알려준다.
    • slab_unreclaim : 위가 안되는 slab page들을 말한다.
    • pgpgin : disk에서 memory로 들어간 page 용량을 말한다. (KB 단위)
    • pgpgout : memory에서 disk로 swap된 page 용량을 말한다. (KB 단위)
    • pgpswpin : disk에서 memory로 들어간 page 개수를 말한다.
    • pgpswpout : memory에서 disk로 swap된 page 개수를 말한다.
    • pgfree : free list에 올라온 page들 개수를 말한다.
    • pgactivate : inactive상태였는데 activate상태가 된 page들 개수를 말한다.
    • pgdeactivate : activate 상태였는데 deactivate된 page들 개수를 말한다.
    • pgfault : page fault 발생 횟수를 말한다.
    • pgmajfault : disk I/O 작업이 필요로 하는 page fault 횟수를 말한다.
    • pgrotate : free할 page를 찾을 때 OS별 특정 priority 탐색 방식으로 page들을 탐색하다가 적절한 후보군을 찾으면 그 page를 free하는데, 이 탐색을 할 때 둘러본 page 개수를 말한다. 저 탐색 과정을 rotation이라고 하기 때문.
    • kswapd_steal : kswapd daemon에서 free시킨 page 개수
    • kswapd_inodesteal : kswapd daemon에서 free시킨 inode page 개수
    • pginodesteal : inode에서 직접 reclaim한 page 개수
    • High / Normal / DMA : kernel 측에서 memory zone을 관리할 때 나누는 zone들을 일컫는다.
    • alloc : 각 zone에서의 page allocation 횟수
    • refill : 각 CPU별로 cache가 있을텐데, 거기서 page를 refill을 각 zone의 page에 대해 한 횟수.
    • steal : 각 zone에서의 page steal
    • scan_kswapd : kswapd라는 daemon에서 각 zone에서 scan한 page 개수. 이 daemon은 kernel swap daemon이라고 하며, free할 page를 찾는 daemon이다.
    • scan_direct : 그외 직접 scan된 page 개수
  • 하나의 주기에서의 CPU 사용률이 아닌, 오랜 기간동안 CPU 사용률이 어떻게 변하는지를 그림으로 파악하고 싶으면 l을 눌러서 CPU Long Term을 확인하는 것이 가능하다.

  • h로 도움말을 여는게 가능하다.

  • +-로 주기 조절이 가능하다. +는 주기를 현재의 2배로 느리고, -는 현재의 절반으로 줄인다.
profile
CS 학부생, 핵심 관심 분야 : Embed/System/Architecture/SWE

0개의 댓글