svmon -P 命令显示系统上当前正在运行的所有进程的内存使用情况统计信息。
# svmon -P
--------------------------------------------------------------------------------
Pid Command Inuse Pin Pgsp Virtual 64-bit Mthrd 16MB
16264 IBM.ServiceRM 10075 3345 3064 13310 N Y N
PageSize Inuse Pin Pgsp Virtual
s 4 KB 10075 3345 3064 13310
L 16 MB 0 0 0 0
Vsid Esid Type Description PSize Inuse Pin Pgsp Virtual
f001e d work shared library text s 4857 0 36 6823
0 0 work kernel seg s 4205 3335 2674 5197
b83f7 2 work process private s 898 2 242 1098
503ea f work shared library data s 63 0 97 165
c8439 1 pers code,/dev/hd2:149841 s 28 0 - -
883f1 - work s 21 8 14 26
e83dd - pers /dev/hd2:71733 s 2 0 - -
f043e 4 work shared memory segment s 1 0 1 1
c0438 - pers large file /dev/hd9var:243 s 0 0 - -
b8437 3 mmap mapped to sid a03f4 s 0 0 - -
583eb - pers large file /dev/hd9var:247 s 0 0 - -
--------------------------------------------------------------------------------
Pid Command Inuse Pin Pgsp Virtual 64-bit Mthrd 16MB
17032 IBM.CSMAgentR 9791 3347 3167 12944 N Y N
PageSize Inuse Pin Pgsp Virtual
s 4 KB 9791 3347 3167 12944
L 16 MB 0 0 0 0
Vsid Esid Type Description PSize Inuse Pin Pgsp Virtual
f001e d work shared library text s 4857 0 36 6823
0 0 work kernel seg s 4205 3335 2674 5197
400 2 work process private s 479 2 303 674
38407 f work shared library data s 120 0 127 211
a83f5 1 pers code,/dev/hd2:149840 s 99 0 - -
7840f - work s 28 10 27 39
e83dd - pers /dev/hd2:71733 s 2 0 - -
babf7 - pers /dev/hd2:284985 s 1 0 - -
383e7 - pers large file /dev/hd9var:186 s 0 0 - -
e03fc - pers large file /dev/hd9var:204 s 0 0 - -
f839f 3 mmap mapped to sid 5840b s 0 0 - -
[...]
该命令输出详细描述了每个进程的全局内存使用情况,以及每个报告的进程所使用的每个段的内存使用详细情况。缺省的排序规则是按照
Inuse 页面计数降序排列。 运行
svmon 命令时带
-u、
-p、
-g 或
-v 标志之一,可更改排序规则。
要获得系统上使用内存的前 15 个进程摘要,请使用以下命令:
# svmon -Pt15 | perl -e 'while(<>){print if($.==2||$&&&!$s++);$.=0 if(/^-+$/)}'
--------------------------------------------------------------------------------
Pid Command Inuse Pin Pgsp Virtual 64-bit Mthrd 16MB
16264 IBM.ServiceRM 10075 3345 3064 13310 N Y N
17032 IBM.CSMAgentR 9791 3347 3167 12944 N Y N
21980 zsh 9457 3337 2710 12214 N N N
22522 zsh 9456 3337 2710 12213 N N N
13684 getty 9413 3337 2710 12150 N N N
26590 perl5.8.0 9147 3337 2710 12090 N N N
7514 sendmail 9390 3337 2878 12258 N N N
14968 rmcd 9299 3340 3224 12596 N Y N
18940 ksh 9275 3337 2710 12172 N N N
14424 ksh 9270 3337 2710 12169 N N N
4164 errdemon 9248 3337 2916 12255 N N N
3744 cron 9217 3337 2770 12125 N N N
11424 rpc.mountd 9212 3339 2960 12290 N Y N
21564 rlogind 9211 3337 2710 12181 N N N
26704 rlogind 9211 3337 2710 12181 N N N
Pid 16264 是消耗内存最多的进程标识。Command 指出命令名,本例中为 IBM®.ServiceRM。Inuse 列显示了 10075 页,该列是该进程所使用的段的实内存总页数。每一页大小为 4 KB。Pin 列显示 3345 页,该列为该进程所使用的段的固定总页数。Pgsp 列显示 3064 页,该列是该进程所使用的调页空间页的总数。Virtual 列(进程虚拟空间中的总页数)显示 13310 页。
细节区域显示了摘要区域中显示的每个进程的每一段的信息。这包括虚拟 Vsid 和有效 Esid 段标识。Esid 反映了用于访问相应页的段寄存器。还显示了段的类型及其描述,该描述为段的文本描述,包括卷名以及永久段的文件索引节点。该报告还详细描述了支持段的页面的大小(其中 s 表示 4 KB 页面,L 表示 16 MB 页面)、RAM 中的页数Inuse、RAM 中的固定页数 Pin、调页空间中的页数 Pgsp 以及虚拟页数 Virtual。
# svmon -S f001e 400 e83dd -l -r -j
Vsid Esid Type Description PSize Inuse Pin Pgsp Virtual
f001e d work shared library text s 4857 0 36 6823
Addr Range: 0..60123
Shared library text segment
400 2 work process private s 480 2 303 675
Addr Range: 0..969 : 65305..65535
pid(s)=17032
e83dd - pers /dev/hd2:71733 s 2 0 - -
/usr/lib/nls/loc/uconvTable/ISO8859-1
Addr Range: 0..1
pid(s)=17552, 17290, 17032, 16264, 14968, 9620
Address Range 为永久段或者客户机段指定一个范围或者为工作段指定两个范围。永久段或者客户机段的范围用‘0..x’的形式来表示,其中 x 是已使用的虚拟页面的最大数目。工作段的字段范围可以是‘0..x : y..65535’,其中 0..x 包含了全局数据,会增大,而 y..65535 包含了堆栈区域,会减小。对于一个工作段的地址范围,是从两边开始分配空间直到中间。如果工作段是非私有的(内核或共享库),空间的分配是不同的。
在以上示例中,段标识 400 是专用工作段;它的地址范围是 0..969 : 65305..65535。段标识 f001e 是共享库文本工作段;它的地址范围是 0..60123。
一个段可由多个进程使用。这样的段里的每一个实内存页解释了每个使用该段的进程的 Inuse 字段。因此,Inuse 的总数可能超过实内存中的页面总数。这对 Pgsp 和 Pin字段同样适用。摘要部分中显示的值由进程使用的所有段的 Inuse、Pin、Pgsp 和 Virtual 计数器的总和组成。
在以上示例中,e83dd 段由若干进程使用,这些进程的 PID 是 17552、17290、17032、16264、14968 和 9620。