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를 명시적으로 지정한다.
|
|