리눅스 자원 사용량 - linugseu jawon sayonglyang

CLI 환경에서 현재 사용중인 시스템의 CPU와 메모리 사용량을 알아보겠습니다.

CPU 사용량을 top 명령으로 확인하는 방법을 알아보겠습니다. top 명령을 실행하면 아래와 같이 시스템의 전체 정보와 현재 실행 중인 프로세스의 정보를 확인할 수 있습니다.

$ top top - 02:18:58 up 208 days, 15:21, 2 users, load average: 0.04, 0.08, 0.08 Tasks: 209 total, 1 running, 138 sleeping, 0 stopped, 0 zombie Cpu(s): 0.1%us, 0.0%sy, 0.0%ni, 99.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 15837320k total, 12287800k used, 3549520k free, 56160k buffers Swap: 0k total, 0k used, 0k free, 2270224k cached

top 명령의 실행 정보는 아래와 같습니다. 현재 CPU의 사용률, 메모리 사용률을 종합적으로 확인할 수 있습니다.

  • 1행
    • top - 02:18:58
      • 현재 시스템의 시간입니다. 02시 18분 58초입니다.
    • up 208 days, 15:21
      • 현재 시스템이 운영중인 총 시간입니다. 208일 15시간 21분 째 운영중입니다.
    • 2 users
      • 현재 시스템에 접속중인 사용자는 2명입니다.
    • load average: 0.04, 0.08, 0.08
      • 1분, 5분, 15분 간의 시스템 평균 사용롤입니다.
  • 2행
    • Tasks: 209 total, 1 running, 138 sleeping, 0 stopped, 0 zombie
      • 현재 실행중인 전체 프로세스는 209개 이고, 실행중 1개, 대기 138개, 정지 0개, 좀비상태 0개입니다.
  • 3행
    • Cpu(s): 0.1%us, 0.0%sy, 0.0%ni, 99.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
      • CPU 사용률을 아래와 같이 표현합니다.
        • us: 사용자가 사용한 CPU 시간
        • sy: 커널이 사용한 CPU 시간
        • ni: niced 사용자 프로세스를 실행하는 데 소요 된 시간
        • id: 대기시간
        • wa: IO 대기 시간
        • hi: 하드웨어 인터럽트 사용 시간
        • si: 소프트웨어 인터럽트 사용 시간
        • st: 하이퍼 바이저가 다른 프로세서를 처리하는 동안 가상 CPU가 대기하는 시간
  • 4행
    • Mem: 15837320k total, 12287800k used, 3549520k free
      • 메모리 총 15G, 12G를 사용 중이며, 3G가 사용 가능함. 56MB가 버퍼용으로 사용중입니다.
  • 5행
    • Swap: 0k total, 0k used, 0k free
      • 스왑 상태의 메모리로, 현재 사용하지 않고 있습니다.
  • 4행, 5행
    • 56160k buffers, 2270224k cached
      • 메모리를 버퍼로 56MB 사용중이며, 캐쉬용으로 2G를 사용

메모리 사용량

메모리 사용량은 top과 free 명령으로 확인할 수 있습니다. top으로 확인할 수 있는 정보는 위에서 설명했고, free를 이용해서 메모리를 확인하는 방법을 알아보겠습니다. 또한 cat /proc/meminfo명령으로 확인하는 방법도 알아보겠습니다.

free

free로 확인한 메모리 사용량은 아래와 같습니다. 출력 정보의 기본 설정은 KB 단위입니다.

$ free total used free shared buffers cached Mem: 15837320 12138432 3698888 72 56176 2120736 -/+ buffers/cache: 9961520 5875800 Swap: 0 0 0
  • 시스템의 메모리 총합은 15837320(15G)
    • 1행의 정보를 확인하면 사용중(used)인 메모리는 12138432 KB, 사용 가능한(free) 메모리는 3698888 KB
      • total = used + free
    • 2행의 정보를 확인하면 현재 버퍼/캐쉬를 제외하고 사용중인 메모리(used)는 9961520 KB, 사용 가능한 메모리(free)는 5875800 KB
      • 12138432 - 56176 - 2120736 = 9961520‬
    • 1행의 정보를 확인하면 공유 중인 메모리(shared)는 72 KB, 버퍼로 사용중인 메모리(buffers)는 56176 KB, 캐쉬로 사용중인 메모리(cached)는 2120736 KB 입니다.

리눅스는 윈도우와 다르게 메모리를 최대한 활용합니다. 현재 시스템의 메모리 사용량을 확인할 때는 1행의 used와 2행의 used를 모두 확인하여 버퍼와 캐쉬로 활용되는 메모리를 잘 확인해야 합니다.

cat /proc/meminfo

/proc 아래에는 현재 실행중인 프로세스의 정보와 시스템의 정보가 저장되어 있습니다. meminfo에는 현재 메모리 사용 정보가 저장됩니다. 현재 시스템의 전체 메모리(MemTotal), 가용 메모리(MemAvailable)를 이용해 현재 시스템의 메모리 정보를 확인할 수 있습니다.

$ cat /proc/meminfo MemTotal: 15837320 kB MemFree: 3693272 kB MemAvailable: 5792808 kB Buffers: 56176 kB Cached: 2121220 kB SwapCached: 0 kB Active: 11304824 kB Inactive: 344584 kB Active(anon): 9472044 kB Inactive(anon): 44 kB Active(file): 1832780 kB Inactive(file): 344540 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 436 kB Writeback: 0 kB AnonPages: 9472068 kB Mapped: 148948 kB Shmem: 72 kB Slab: 324548 kB SReclaimable: 245592 kB SUnreclaim: 78956 kB KernelStack: 27296 kB PageTables: 41480 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 7918660 kB Committed_AS: 12212360 kB VmallocTotal: 34359738367 kB VmallocUsed: 0 kB VmallocChunk: 0 kB AnonHugePages: 0 kB ShmemHugePages: 0 kB ShmemPmdMapped: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 75748 kB DirectMap2M: 2471936 kB DirectMap1G: 14680064 kB

리눅스 메모리 사용량 확인리눅스 메모리 사용률 확인Linux 메모리사용률

1 sar[ | ]

[root@zetawiki01 ~]# sar -r 1 Linux 2.6.30.10-105.2.23.fc11.x86_64 www.jmnote.com) 05/06/2012 12:54:07 PM kbmemfree kbmemused %memused kbbuffers kbcached kbswpfree kbswpused %swpused kbswpcad 12:54:08 PM 42440 490744 92.04 65124 168916 1146744 128 0.01 16 Average: 42440 490744 92.04 65124 168916 1146744 128 0.01 16

→ 명목 메모리사용률(%memused)은 92.04%이다.

2 free ★[ | ]

[root@zetawiki01 ~]# free total used free shared buffers cached Mem: 533184 490736 42448 0 65264 168936 -/+ buffers/cache: 256536 276648 Swap: 1146872 128 1146744

메모리사용률 계산
명목 [math]\displaystyle{ usage\%=\dfrac{used}{total} }[/math][math]\displaystyle{ = \dfrac{490736}{533184} = 0.9204 = 92.04\% }[/math]
실질 ★ [math]\displaystyle{ usage\%=\dfrac{used-buffers-cached}{total} }[/math][math]\displaystyle{ =\dfrac{490736-65264-168936}{533184} }[/math][math]\displaystyle{ = 0.4811 = 48.11\% }[/math]

# free total used free shared buff/cache available Mem: 980744 260528 188012 716 532204 571160 Swap: 4194300 6656 4187644

메모리사용률 계산
명목 [math]\displaystyle{ usage\%=\dfrac{total-free}{total} }[/math][math]\displaystyle{ = \dfrac{980744-260528}{980744} = 0.7344 = 73.44\% }[/math]
실질 ★ [math]\displaystyle{ usage\%=\dfrac{total-available}{total} }[/math][math]\displaystyle{ =\dfrac{980744-571160}{980744} }[/math][math]\displaystyle{ = 0.4176 = 41.76\% }[/math]

3 top[ | ]

[root@zetawiki01 ~]# top -n1 | grep Mem Mem: 533184k total, 494296k used, 38888k free, 64920k buffers

메모리사용률 계산
명목 [math]\displaystyle{ usage\%= \dfrac{total-free}{total} }[/math][math]\displaystyle{ = \dfrac{533184-38888}{533184} = 0.9271 = 92.71\% }[/math]
실질 ★ [math]\displaystyle{ usage\%=\dfrac{total-free-buffers}{total} }[/math][math]\displaystyle{ = \dfrac{533184-38888-64920}{533184} = 0.8053 = 80.53\% }[/math]

testuser@ubuntu18:~$ top -n1 | grep Mem KiB Mem : 980744 total, 185312 free, 261184 used, 534248 buff/cache KiB Swap: 4194300 total, 4187644 free, 6656 used. 570476 avail Mem

메모리사용률 계산
명목 [math]\displaystyle{ usage\%= \dfrac{total-free}{total} }[/math][math]\displaystyle{ = \dfrac{980744-185312}{980744} = 0.8110 = 81.10\% }[/math]
실질 ★ [math]\displaystyle{ usage\%=\dfrac{total-avail}{total} }[/math][math]\displaystyle{ = \dfrac{980744-570476}{980744} = 0.4183 = 41.83\% }[/math]

4 meminfo[ | ]

cat /proc/meminfo | grep Mem

[root@zetawiki01 ~]# cat /proc/meminfo | grep Mem MemTotal: 533184 kB MemFree: 41860 kB

메모리사용률 계산
명목 [math]\displaystyle{ usage\%= \dfrac{MemTotal-MemFree}{MemTotal} }[/math][math]\displaystyle{ = \dfrac{533184-41860}{533184} = 0.9215 = 92.15\% }[/math]

testuser@ubuntu18:~$ cat /proc/meminfo | grep Mem MemTotal: 980744 kB MemFree: 184332 kB MemAvailable: 570076 kB

메모리사용률 계산
명목 [math]\displaystyle{ usage\%= \dfrac{MemTotal-MemFree}{MemTotal} }[/math][math]\displaystyle{ = \dfrac{980744-184332}{980744} = 0.8120 = 81.20\% }[/math]
실질 ★ [math]\displaystyle{ usage\%=\dfrac{MemTotal-MemAvailable}{MemTotal} }[/math][math]\displaystyle{ = \dfrac{980744-570076}{980744} = 0.4187 = 41.87\% }[/math]

5 같이 보기[ | ]

  • 리눅스 메모리 사용률 (명목 vs 실질)
  • 리눅스 메모리 사용량
  • 리눅스 메모리 사용량순 프로세스 보기
  • 리눅스 sar 메모리 사용률 이력 확인
  • 리눅스 CPU 사용률

Toplist

최신 우편물

태그