jmeminfo

   jmeminfo

  사용법


	jmeminfo -V
	jmeminfo [-k|-g]
	jmeminfo [-k|-g][-f] [-t n] [-s][-r][-h][-d][-H] -p
	jmeminfo [-k|-g][-f] -p pid [pid ...]
	jmeminfo [-k|-g][-f][-H] -a 
	jmeminfo [-k|-g][-f][-H] -X [-v] -a
	jmeminfo [-k|-g][-f] -X [-v] -p pid [pid ...]
	jmeminfo -K [{ -a | -t n | -N name[,...] } ] [-k][-H]

	Options are as follows:

	-?            print this help
	-a            display all the process information
	-d            sort by DATA, (default option)
	-dr           sort by R-DATA
	-f            print executed command name only
	-g            display memory size in gigabyte
	-H            do not print system memory information
	-h            sort by SHMEM
	-hr           sort by R-SHM
	-k            display memory size in kilobyte
	-K            display kernel cache memory information
	-N name[,...] specify name for kernel cache memory name
	-p            print process information
	-r            sort by RSS
	-s            sort by SIZE
	-t n          the number of processes to display with -p option: 1 <= n <= 512; def: 20
	-X            show detailed memory map information
	-V            show version
	-v            print memory map entry one by one
	pid           PID to be checked
  설명

jmeminfo 명령어에 옵션을 지정하지 않고 실행하면 다음과 같이 시스템의 가상 메모리와 물리적 메모리 사용량을 보여준다.

# /opt/JSparm/bin/jmeminfo
VMem: 16375M: alloc 2825.M (17.2%), reserv 205.4M (1.2%), free 11331M (69.1%), other 2013.M (12.5%)
PMem: 8183.M: use 3927.M (48.0%), free 4256.M (52.0%)
misc: Shmem: 600.0M (3), TmpFS: 1618.M (3), SWAPdev: 0.000M (1), RamDisk: 0.000M (0)

VMem: 라인은 가상 메모리(Virtual Memory) 사용량을 나타내고,
PMem: 라인은 물리적 메모리(Physical Memory) 사용량을 나타내고,
misc: 라인은 시스템의 메모리 사용량에 영향을 미치는 주요 정보를 보여준다.

메모리의 사용률에서 누가 메모리를 사용하는가에 따라 크게 두 가지로 나눌 수 있다.
user (사용자의 application 프로세스)가 사용하는가 또는 kernel이 사용하는가 하는 것으로 나뉜다.

가상 메모리는 물리적 메모리와 디스크의 swap partition 부분을 합하여 하나의 큰 메모리를 말한다.
이렇게 크게 만들어진 가상 메모리는 가상 메모리 관리 방법에 의해 관리된다.

VMem: 가상 메모리 부분에는 다음과 같이 4개의 분류가 있다.
(VMem 우측에 있는 값은 가상 메모리 전체 크기이다. 이것은 physmem + swap device 이다.)

VMem: 16375M: alloc 2825.M (17.2%), reserv 205.4M (1.2%), free 11331M (69.1%), other 2013.M (12.5%)
필드설명
 alloc user 프로세스에게 할당된 가상 메모리 공간
괄호() 안에 있는 숫자는 전체 가상 메모리 대비 사용률이다.
 reserv user 프로세스가 예약해 놓은 메모리 공간
괄호() 안에 있는 숫자는 전체 가상 메모리 대비 사용률이다.
 free user 프로세스가 사용할 수 있는 메모리 공간 (available)
괄호() 안에 있는 숫자는 전체 가상 메모리 대비 사용률이다.
 other VM mamagement + kernel

가상 메모리를 관리하기 위하여 물리적 메모리 크기의 1/8 (swap_minfee) 공간이 별로로 분리되어 이다.
이 메모리 공간과 커널이 사용한 메모리 공간의 합계
괄호() 안에 있는 숫자는 전체 가상 메모리 대비 사용률이다.

PMem: 물리적 메모리 부분.
(PMem 우측에 있는 값은 물리적 메모리 전체 크기이다.
이 크기는 시스템에 설치되어 있는 H/W 메모리양이 아니고, physmem 크기이다. 이 양은 H/W 메모리양 보다 조금 적다.)

PMem: 8183.M: use 3927.M (48.0%), free 4256.M (52.0%)
필드설명
 use 시스템에서 사용하고 있는 공간
괄호() 안에 있는 숫자는 전체 물리적 메모리 대비 사용률이다.
 free 남아있는 메모리 공간
괄호() 안에 있는 숫자는 전체 물리적 메모리 대비 사용률이다.

misc: 부분에는 다음과 같은 정보가 있다.

misc: Shmem: 600.0M (3), TmpFS: 1618.M (3), SWAPdev: 0.000M (1), RamDisk: 0.000M (0)
필드설명
 Shmem shared momory로 할당된 메모리 공간.
괄호() 안에 있는 숫자는 shared memory 개수
 TmpFS tmpfs 파일 시스템이 사용하는 데이타 양.

tmpfs는 가상 메모리 공간을 한다.
괄호() 안에 있는 숫자는 tmpfs 파일 시스템의 개수

 SWAPdev swap partition에 빠져나간 메모리 양.
괄호() 안에 있는 숫자는 swap partition의 개수
 RamDisk ramdisk에 할당된 메모리 양
괄호() 안에 있는 숫자는 ramdisk의 개수

Solars 9에서는 RamDisk 정보를 표시하지 못한다.
이 경우에 괄호 안에 -1 일 표시된다.   (-1)

시스템의 메모리가 부족할 경우에 이 명령어의 결과를 보고 사용자가 메모리를 많이 사용하였는지 커널이 많이 사용하였는지 확인할 수 있다.

만일 커널이 메모리를 많이 사용하였다면, -K 옵션을 사용하여, 커널 캐쉬 메모리 중에 사용량이 많은 순서로 상위 20개 정보를 볼 수 있다.

# jmeminfo -K
VMem: 16375M: alloc 1136.M (6.9%), reserv 203.0M (1.2%), free 7873.M (48.0%), other 7161.M (43.9%)
PMem: 8183.M: user 7858.M (96.1%), free 325.2M (3.9%)
misc: Shmem: 0.000M (0), TmpFS: 102.5M (3), SWAPdev: 0.000M (1), RamDisk: 0.000M (0)
---------------------------------------------------------------------------------------
             kmem_cache buf_size buf_inuse buf_total  mem_inuse        alloc  fail
---------------------------------------------------------------------------------------
    zio_data_buf_131072   131072     18636     32720     4090.M       353847     0
           kmem_va_4096     4096    205350    205376     802.2M       385035     0
          kmem_va_16384    16384     16314     16320     255.0M        17009     0
          zio_buf_16384    16384     16151     16264     254.1M       298920     0
                dnode_t      656    143207    144624     94.15M       175747     0
        kmem_alloc_4096     4096     23652     24036     93.89M      6606478     0
            zio_buf_512      512    155306    156032     76.18M      1430848     0
          kmem_oversize        -         -         -     73.72M          182     0
          kmem_va_28672    28672       649      2328     72.75M        12138     0
           rnode4_cache      968       215     70488     68.83M        70854     0
         dmu_buf_impl_t      192    225370    275961     51.33M       934080     0
               vn_cache      240    137139    187110     48.72M     19681035     0
         kmem_alloc_256      256      6570    159210     41.46M     18821862     0
            rnode_cache      656     62013     62016     40.37M        62158     0
             anon_cache       48    291178    856212     39.81M   1066069518     0
          arc_buf_hdr_t      168    172356    186552     30.36M      1313864     0
         kmem_alloc_112      112    164060    253296     27.48M      8296554     0
     zio_data_buf_20480    20480      1083      1181     23.06M        38344     0
           kmem_va_8192     8192      2900      2912     22.75M         5255     0
         kmem_alloc_512      512       457     46096     22.50M     16945633     0

'kmem_oversize'는 다른 것과 다르게 buf_size, buf_inuse, buf_total의 값이 없다, kmem_oversize는 커널 캐쉬 메모리는 아니지만, 커널 메모리를 사용하는 중요한 부분이기 때문에 커널 캐쉬 메모리와 함께 출력한다.

-N 옵션을 사용하여, 원하는 커널 캐쉬 메모리만 지정하여 다음과 같이 실행할 수 있다.

# jmeminfo -K -N kmem_va_8192,rnode4_cache
VMem: 2299.M: alloc 178.2M (7.7%), reserv 64.66M (2.8%), free 1660.M (72.2%), other 395.6M (17.3%)
PMem: 1271.M: user 499.0M (39.3%), free 772.0M (60.7%)
misc: Shmem: 0.000M (0), TmpFS: 2.055M (3), SWAPdev: 0.000M (1), RamDisk: 0.000M (0)
---------------------------------------------------------------------------------------
             kmem_cache buf_size buf_inuse buf_total  mem_inuse        alloc  fail
---------------------------------------------------------------------------------------
           kmem_va_8192     8192      2900      2912     22.75M         5255     0
           rnode4_cache      968         0         0     0.000M            0     0


만일 사용자가 메모리를 많이 사용하였다면, jmeminfo 명령어에 -p 옵션을 지정하여 개별 프로세스가 사용하는 메모리 정보를 확인할 수 있다.
-p 옵션을 지정하면, 시스템의 모든 프로세스의 메모리 맵을 조사하여 DATA(프로세스의 데이타 부분의 가상메모리 크기)가 큰 순으로 상위 20개의 프로세스 정보를 보여준다.

# jmeminfo -p
VMem: 16375M: alloc 1429.M (8.7%), reserv 185.5M (1.1%), free 12583M (76.8%), other 2176.M (13.4%)
PMem: 8183.M: user 2689.M (32.9%), free 5494.M (67.1%)
misc: Shmem: 600.0M (3), TmpFS: 130.4M (3), SWAPdev: 0.000M (1), RamDisk: 0.000M (0)
Date.time 0321.11:05:24 nproc 116 shmem 0.000M/0.000M(0) data 801.1M/620.0M (heap 483.1M/468.7M stack 2.621M/2.621M
anon 315.4M/148.6M)
  PID     USER   SIZE  [RSS]  SHMEM [R-SHM]   DATA [R-DATA] (   HEAP  STACK   ANON )  ELAPSED CMDLINE
 1294    guest 228.5M 69.18M 0.000M  0.000M 157.9M   35.59M ( 6.211M 0.074M 151.6M )  0d85429 transfer_mon -p 1200
 1380    guest 258.5M 158.6M 0.000M  0.000M 122.5M   107.2M ( 103.4M 0.098M 18.94M )  0d85340 recv_mon
  999     root 202.5M 154.0M 0.000M  0.000M 119.6M   115.1M ( 70.53M 0.047M 49.03M )  0d85470 send_mon -p 1200
 1492    guest 233.6M 129.1M 0.000M  0.000M 81.96M   81.44M ( 80.12M 0.090M 1.758M )  0d78323 mailagent -K
  869     root 51.60M 44.79M 0.000M  0.000M 45.18M   38.55M ( 7.191M 0.012M 37.97M )  0d85480 CMD_backup
  894    guest 316.7M 309.1M 0.000M  0.000M 29.40M   27.93M ( 21.62M 0.109M 7.676M )  0d85480 Xmgr -depth 24
 1066    guest 38.17M 35.77M 0.000M  0.000M 28.16M   27.41M ( 27.00M 0.016M 1.145M )  0d85458 iiimd
 1170    guest 153.8M 47.95M 0.000M  0.000M 25.02M   24.41M ( 23.70M 0.035M 1.277M )  0d85442 terminal
 1166    guest 165.9M 45.52M 0.000M  0.000M 20.53M   20.44M ( 19.38M 0.027M 1.121M )  0d85443 panel
 2737    guest 98.54M 51.31M 0.000M  0.000M 16.51M   9.539M ( 3.914M 0.094M 12.50M )  0d57120 CMD_pass -p 1290
 2577    guest 16.66M 16.21M 0.000M  0.000M 13.18M   12.98M ( 13.10M 0.020M 0.062M )  0d62948 vi test.txt
 1164    guest 107.2M 32.87M 0.000M  0.000M 12.03M   11.88M ( 10.60M 0.074M 1.352M )  0d85443 ssmond
 1124    guest 130.9M 32.96M 0.000M  0.000M 11.98M   11.86M ( 11.18M 0.023M 0.781M )  0d85449 session
 1162    guest 125.0M 29.30M 0.000M  0.000M 10.52M   10.45M ( 9.453M 0.027M 1.039M )  0d85443 metacity
    7     root 15.10M 13.25M 0.000M  0.000M 9.910M   8.871M ( 8.824M 0.008M 1.078M )  0d85512 svc.startd
    9     root 11.21M 10.63M 0.000M  0.000M 8.391M   8.293M ( 7.801M 0.020M 0.570M )  0d85511 svc.configd
 1136    guest 146.5M 26.86M 0.000M  0.000M 7.238M   7.160M ( 6.945M 0.023M 0.270M )  0d85448 composite
 1069    guest 11.74M 11.15M 0.000M  0.000M 6.129M   6.016M ( 5.867M 0.012M 0.250M )  0d85454 global_conf
  542     root 14.08M 12.12M 0.000M  0.000M 5.457M   5.094M ( 4.430M 0.016M 1.012M )  0d85488 fmd
 3418     root 1.590M 1.574M 0.000M  0.000M 0.102M   0.086M ( 0.039M 0.016M 0.047M )    0d250 ksh

-p 옵션 또는 -a 옵션을 지정하면 개별 프로세스의 메모리 맵을 모두 조사하여 프로세스 별로 정보를 보여준다.
(모든 프로세스의 메모리 맵을 조사하는 것은 시스템에 부하를 좀 발생한다. 꼭 필요할 때가 아니면 자주 사용하지 않기를 권장합니다.)

다음은 출력되는 정보에 대한 설명이다.

헤더 설명
Date.time 0321.11:05:2 jmeminfo 명령어를 실행한 시간을 나타낸다. 형식은 다음과 같다.
	mmdd.HHMMSS
		mm - month   (월)
		dd - day     (일)
		HH - hour    (시)
		MM - minute  (분)
		SS - second  (초)
nproc 116 시스템이 있는 전체 프로세스 개수
shmem 0.000M/0.000M(0) virtual memory size / physical memory size

전체 프로세스에서 attach된 공유메모리(shared memory)의 합계
괄호() 안에 숫자는 프로세스에 의해 사용되는 공유 메모리 개수

하나의 공유 메모리 ID에 대하여 한번만 계산한다.

data 801.1M/620.0M virtual memory size / physical memory size

전체 프로세스에서 데이타 영역으로 사용된 메모리의 합계

이것은 다음에 있는 heap, stack, anon의 합계이다.

data = heap + stack + anon

heap 483.1M/468.7M virtual memory size / physical memory size

전체 프로세스에서 heap 영역으로 사용된 메모리의 합계

stack 2.621M/2.621M virtual memory size / physical memory size

전체 프로세스에서 stack 영역으로 사용된 메모리의 합계

anon 315.4M/148.6M virtual memory size / physical memory size

전체 프로세스에서 anon 영역으로 사용된 메모리의 합계

컬럼 설명 정렬 옵션
PID 프로세스 ID  
SIZE 프로세스가 차지하는 메모리 크기jmeminfo -s
RSS 프로세스가 차지하는 메모리 중에서 물리적 메모리에 적재된 크기 jmeminfo -r
SHMEM 프로세스가 차지하는 공유 메모리(shared memory) 크기 jmeminfo -h
R-SHM 프로세스가 차지하는 공유 메모리(shared memory) 중에서 물리적 메모리에 적재된 크기 jmeminfo -hr
DATA 프로세스가 차지하는 개별 데이타 메모리(private data) 크기

개별 데이타 메모리란 다른 프로세스들과 공유되지 않고 각각 프로세스가 독립적으로 사용하는 메모리를 말한다.
다음에 있는 HEAP, STACK, ANON 의 합계가 DATA 메모리이다.

DATA = HEAP + STACK + ANON

Solaris 운영체제에서 말하는 ANON 메모리는 anonymous memory를 말하며, HEAP, STACK, SHMEM 등이 모두 ANON 메모리이다.
ANON 메모리 중에 특별한 용도로 구분되는 3가지를 여기서 분류하여 표시한다.

jmeminfo -d
(디폴트 옵션)
R-DATA 프로세스가 차지하는 개별 데이타 메모리(private data) 크기 중에서 물리적 메모리에 적재된 크기

R-DATA = R-HEAP + R-STK + R-ANON
jmeminfo -dr
HEAP 프로세스가 차지하는 heap 메모리 크기  
R-HEAP 프로세스가 차지하는 heap 메모리 크기 중에서 물리적 메모리에 적재된 크기  
STACK 프로세스가 차지하는 stack 메모리 크기
(메인 쓰레드의 스택 크기만 해당됨.)
 
R-STK 프로세스가 차지하는 stack 메모리 크기 중에서 물리적 메모리에 적재된 크기  
ANON 프로세스가 차지하는 anon 메모리 크기

실제 anonymous 메모리 중에서 heap과 stack과 shared memory가 아닌 anonymous 메모리

 
R-ANON 프로세스가 차지하는 anon 메모리 크기 중에서 물리적 메모리에 적재된 크기  
ELAPSED 프로세스가 시작한 후에 경과된 시간(second)
형식: day d second
1d12419:   1일 12419초가 경과함
 
CMDLINE 실행한 프로세스의 이름과 인수  
CMD 실행한 프로세스의 이름

jmeminfo 명령어에 -f 옵션을 지정하면 CMDLINE 대신에 CMD를 출력한다.

 

jmeminfo 명령어에 -dr -p 옵션을 지정하면 다음과 같이 "[R-DATA]"가 큰 순서로 상위 20개의 프로세스 정보를 보여준다.
(이때 R-DATA 컬럼의 오른쪽 괄호 안에 있는 값은 각각 HEAP, STACK. ANON 메모리 중에서 물리적 메모리에 적재된 양을 표시한다.)

# jmeminfo -dr -p
VMem: 16375M: alloc 1398.M (8.5%), reserv 216.6M (1.3%), free 12583M (76.8%), other 2176.M (13.4%)
PMem: 8183.M: user 2689.M (32.9%), free 5494.M (67.1%)
misc: Shmem: 600.0M (3), TmpFS: 130.4M (3), SWAPdev: 0.000M (1), RamDisk: 0.000M (0)
Date.time 0321.11:05:35 nproc 116 shmem 0.000M/0.000M(0) data 801.1M/620.0M (heap 483.1M/468.7M stack 2.621M/2.621M
anon 315.4M/148.6M)
  PID     USER   SIZE  [RSS]  SHMEM [R-SHM]   DATA [R-DATA] ( R-HEAP  R-STK R-ANON )  ELAPSED CMDLINE
  999     root 202.5M 154.0M 0.000M  0.000M 119.6M   115.1M ( 70.15M 0.047M 44.93M )  0d85481 send_mon -p 1200
 1380    guest 258.5M 158.6M 0.000M  0.000M 122.5M   107.2M ( 103.3M 0.098M 3.805M )  0d85351 recv_mon
 1492    guest 233.6M 129.1M 0.000M  0.000M 81.96M   81.44M ( 79.81M 0.090M 1.539M )  0d78334 mailagent -K
  869     root 51.60M 44.79M 0.000M  0.000M 45.18M   38.55M ( 7.168M 0.012M 31.37M )  0d85491 CMD_backup
 1294    guest 228.5M 69.18M 0.000M  0.000M 157.9M   35.59M ( 6.000M 0.074M 29.52M )  0d85440 transfer_mon -p 1200
  894    guest 316.7M 309.1M 0.000M  0.000M 29.40M   27.93M ( 20.79M 0.109M 7.031M )  0d85491 Xmgr -depth 24
 1066    guest 38.17M 35.77M 0.000M  0.000M 28.16M   27.41M ( 26.75M 0.016M 0.652M )  0d85469 iiimd
 1170    guest 153.8M 47.95M 0.000M  0.000M 25.02M   24.41M ( 23.18M 0.035M 1.191M )  0d85453 terminal
 1166    guest 165.9M 45.52M 0.000M  0.000M 20.53M   20.44M ( 19.37M 0.027M 1.043M )  0d85454 panel
 2577    guest 16.66M 16.21M 0.000M  0.000M 13.18M   12.98M ( 12.91M 0.020M 0.051M )  0d62959 vi test.txt
 1164    guest 107.2M 32.87M 0.000M  0.000M 12.03M   11.88M ( 10.60M 0.074M 1.207M )  0d85454 ssmond
 1124    guest 130.9M 32.96M 0.000M  0.000M 11.98M   11.86M ( 11.17M 0.023M 0.664M )  0d85460 session
 1162    guest 125.0M 29.30M 0.000M  0.000M 10.52M   10.45M ( 9.449M 0.027M 0.980M )  0d85454 metacity
 2737    guest 98.54M 51.31M 0.000M  0.000M 16.51M   9.539M ( 3.812M 0.094M 5.633M )  0d57131 CMD_pass -p 1290
    7     root 15.10M 13.25M 0.000M  0.000M 9.910M   8.871M ( 7.836M 0.008M 1.027M )  0d85523 svc.startd
    9     root 11.21M 10.63M 0.000M  0.000M 8.391M   8.293M ( 7.727M 0.020M 0.547M )  0d85522 svc.configd
 1136    guest 146.5M 26.86M 0.000M  0.000M 7.238M   7.160M ( 6.938M 0.023M 0.199M )  0d85459 composite
 1069    guest 11.74M 11.15M 0.000M  0.000M 6.129M   6.016M ( 5.863M 0.012M 0.141M )  0d85465 global_conf
  542     root 14.08M 12.12M 0.000M  0.000M 5.457M   5.094M ( 4.289M 0.016M 0.789M )  0d85499 fmd
 3418     root 1.590M 1.574M 0.000M  0.000M 0.102M   0.086M ( 0.035M 0.016M 0.035M )    0d261 ksh

jmeminfo 명령에 -p 옵션을 지정하고 명령어 라인의 인수로 PID를 저정하면 지정한 PID에 대해서만 메모리 정보를 보여준다.
보여주는 순서는 지정한 PID 순서이다.

# jmeminfo -p 999 1294
  PID     USER   SIZE  [RSS]  SHMEM [R-SHM]   DATA [R-DATA] (   HEAP  STACK   ANON )  ELAPSED CMDLINE
  999 noaccess 202.5M 154.0M 0.000M  0.000M 119.6M   115.1M ( 70.53M 0.047M 49.03M )    1d638 send_mon -p 1200
 1294    guest 228.5M 69.18M 0.000M  0.000M 157.9M   35.59M ( 6.211M 0.074M 151.6M )    1d597 transfer_mon -p 1200

jmeminfo 명령어에 -X 옵션을 지정하면, 다음과 같이 프로세스의 메모리 맵 정보를 자세히 보여준다.

# jmeminfo -X -p 2509
2509 : vi test.dat
 Address     SIZE      RSS     ANON     Mode(XXX) Mapped File
08043000   0.020M   0.020M   0.020M  As--rw-(066) [stack]
08050000   0.160M   0.160M   0.000M  Ft--r-x(005) a.out
08089000   0.027M   0.027M   0.016M  Ft--rw-(006) a.out
08090000   0.578M   0.219M   0.219M  Ah--rw-(056) [heap]
FEBBA000   1.637M   1.398M   0.000M  Ft-sr--(00C) zfs.181.65538.172862
FED5E000   0.129M   0.121M   0.000M  Ft-sr--(00C) zfs.181.65538.172864
FED80000   0.004M   0.004M   0.000M  Ft--r-x(005) zfs.181.65538.169540
FED90000   0.004M   0.004M   0.004M  Ft--rwx(007) zfs.181.65538.169540
FEDA0000   0.008M   0.008M   0.000M  Ft--r-x(005) zfs.181.65538.169547
FEDB1000   0.004M   0.004M   0.004M  Ft--rwx(007) zfs.181.65538.169547
FEDC0000   0.059M   0.059M   0.000M  Ft--r-x(005) zfs.181.65538.169544
FEDDE000   0.008M   0.008M   0.004M  Ft--rwx(007) zfs.181.65538.169544
FEE00000   0.023M   0.023M   0.000M  Ft--r-x(005) zfs.181.65538.14078
FEE16000   0.004M   0.004M   0.004M  Ft--rw-(006) zfs.181.65538.14078
FEE20000   1.051M   1.051M   0.000M  Ft--r-x(005) zfs.181.65538.255196
FEF30000   0.023M   0.012M   0.012M  Aa--rwx(047) [anon]
FEF3D000   0.031M   0.031M   0.027M  Ft--rw-(006) zfs.181.65538.255196
FEF45000   0.008M   0.008M   0.008M  Aa--rw-(046) [anon]
FEF50000   0.133M   0.125M   0.000M  Ft--r-x(005) zfs.181.65538.14066
FEF80000   0.004M   0.004M   0.004M  Aa--rwx(047) [anon]
FEF82000   0.027M   0.027M   0.016M  Ft--rw-(006) zfs.181.65538.14066
FEF89000   0.008M   0.008M   0.008M  Aa--rw-(046) [anon]
FEF90000   0.004M   0.004M   0.000M  Ft--r-x(005) zfs.181.65538.2825
FEFA1000   0.004M   0.004M   0.004M  Ft--rw-(006) zfs.181.65538.2825
FEFB0000   0.004M   0.004M   0.004M  Aa--rw-(046) [anon]
FEFC0000   0.004M   0.004M   0.004M  Aa--rwx(047) [anon]
FEFC3000   0.156M   0.156M   0.000M  Ft--r-x(005) zfs.181.65538.14055
FEFEE000   0.004M   0.004M   0.004M  Aa-srwx(04F) [anon]
FEFF0000   0.004M   0.004M   0.004M  Aa--rwx(047) [anon]
FEFFB000   0.008M   0.008M   0.008M  Ft--rwx(007) zfs.181.65538.14055
FEFFD000   0.004M   0.004M   0.004M  Aa--rwx(047) [anon]
   Total   4.141M   3.516M   0.375M
Sum: shmem 0.000M/0.000M data 0.660M/0.289M (heap 0.578M/0.219M stack 0.020M/0.020M anon 0.062M/0.051M)

Mode(XXX)에 대한 설명은 다음과 같다. 7개의 문자가 있고, 그 뒤에 괄호 안에 3개의 16진수 값이 있다. 이 16진수의 값은 보기 쉽게 7개의 문자로 표시하였다.

위치 설명
1 번째 문자 'A' , 'F' 또는 'S'

'A' 문자는 anonymous 메모리를 표시하고, 'F' 문자는 파일과 맵핑된 메모리를 표시하고, 'S' 문자는 공유 메모리(shared memory)를 표시한다.

2 번째 문자 두번째 문자는 첫번째 문자에 따라 표시될 수 있는 것이 달라진다.

첫번재 문자가 'A' 이면, 'h' (heap), 's' (stack) 또는 'a' (anon) 중에 하나이고,
첫번재 문자가 'F' 이면, 항상 '-' 이고,
첫번재 문자가 'S' 이면, 'I' (ISM), 'D' (DISM) 또는 '-' (normal) 중에 하나이다.

3 번째 문자 'N' 또는 '-'

'N'이 표시되어 있으면, 해당 메모리 공간에 대한 swap 공간을 예약하지 않는다는 것을 표시한다.

4 번째 문자 's' 또는 '-'

's'가 표시되어 있으면, 해당 메모리 공간에 다른 프로세스에 의해 공유될 수 있다는 것을 나타낸다.

5 번째 문자
6 번째 문자
7 번째 문자
3 개의 문자는 access 권할을 표시한다. 각각 rwx에 해당한다.
해당 권한이 없을 경우에는 '-'로 표시된다.

다음은 jmeminfo의 각 옵션에 대하여 설명한다.

옵션설명
-a -p 옵션을 지정하면, 전체 프로세스를 조사하여, DATA 영역이 큰 순서로 상위 20개 프로세스 정보만 출력한다.
-a 옵션을 지정하면, 모든 프로세스 정보를 출력한다.
-K 옵션과 -a 옵션을 함께 사용하면, 모든 커널 케쉬 메모리(kmem_cache) 정보 정보를 보여준다.

-a 옵션을 사용할 때에는 정렬순서가 없다.

-d -d 옵션은 -p 옵션과 함께 사용되며, DATA 영역이 큰 순서로 정렬하여 표시한다.
-p 옵션을 사용할 경우에, 정렬순서를 명시적으로 지정하지 않으면, 디폴트로 -d 옵션이 사용된다.
-f -f 옵션을 지정하면, 프로세스 정보를 출력할 때, CMDLINE 대신에 CMD를 출력한다.
-g 출력되는 메모리 정보를 GB 단위로 표시한다.
-H -H 옵션을 지정하면 시스템 전체 메모리 정보를 출력하지 않는다.
-h -h 옵션은 -p 옵션과 함께 사용되며, SHMEM 영역이 큰 순서로 정렬하여 표시한다.
-k 출력되는 메모리 정보를 KB 단위로 표시한다.
-K 커널 캐쉬 메모리 사용량 중 상위 20개의 정보를 보여준다.
-a 옵션을 지정하면, 모든 커널 케쉬 메모리 정보를 보여준다.

-N name 옵션을 사용하여, 원하는 커널 캐쉬 메모리만을 볼 수 이다.

-N name[,...] -N 옵션은 -K 옵션과 함께 사용되며, 보고 싶은 커널 캐쉬 메모리 이름을 지정한다.
여러개를 지정할 경우에, 콤마로 분리한다.
-p -p 옵션을 지정하면, 전체 프로세스를 조사하여, 정렬 순서에 따라 상위 20개 프로세스 정보만 출력한다.

정렬 순서는 다음과 같은 옵션으로 변경할 수 있다.

옵션설명
-d DATA 크기 순서로 정렬
(디폴트 정렬 옵션)
-dr
-d -r
R-DATA 크기 순서로 정렬
-h SHMEM 크기 순서로 정렬
-hr
-h -r
R-SHM 크기 순서로 정렬
-r RSS 크기 순서로 정렬
-s SIZE 크기 순서로 정렬
-r RSS 크기 순서로 정렬

이 옵션과 -d 옵션을 함께 사용하면, R-DATA의 크기 순서로 정렬하고, -h 옵션과 함깨 사용하면 R-SHM의 크기 순서로 정렬한다.

-r 옵션이 사용되면, (R-HEAP, R-STK, R-ANON) 정보가 출력된다. -r 옵션이 없으면 (HEAP, STACK, ANON) 정보가 출력된다.

-s SIZE 크기 순서로 정렬
-t n -p 옵션을 지정하면, 전체 프로세스를 조사하여 정렬순서에 따라 상위 20개의 프로세스 정보를 보여준다.
-t 옵션으로 상위 몇개의 프로세스 정보를 보여줄 지를 결정한다. 디폴트는 20이다.
-X -X 옵션을 지정하면, 프로세스의 메모리 맵에 대해 자세한 정보를 보여준다.
-V -V 옵션을 지정하면, 명령어의 버전 정보를 보여준다.
-v -v 옵션은 -X 옵션과 함께 사용되며, 프로세스의 메모리 맵 정보를 각 entry 별로 한 라인씩 더 자세히 출력한다.
pid [pid ...] 조사할 프로세스 ID를 명시적으로 지정한다.