进程的内存使用情况

svmon -P 命令显示系统上当前正在运行的所有进程的内存使用情况统计信息。

下面是  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®.ServiceRMInuse 列显示了 10075 页,该列是该进程所使用的段的实内存总页数。每一页大小为 4 KB。Pin 列显示 3345 页,该列为该进程所使用的段的固定总页数。Pgsp 列显示 3064 页,该列是该进程所使用的调页空间页的总数。Virtual 列(进程虚拟空间中的总页数)显示 13310 页。

细节区域显示了摘要区域中显示的每个进程的每一段的信息。这包括虚拟 Vsid 和有效 Esid 段标识。Esid 反映了用于访问相应页的段寄存器。还显示了段的类型及其描述,该描述为段的文本描述,包括卷名以及永久段的文件索引节点。该报告还详细描述了支持段的页面的大小(其中 s 表示 4 KB 页面,L 表示 16 MB 页面)、RAM 中的页数Inuse、RAM 中的固定页数 Pin、调页空间中的页数 Pgsp 以及虚拟页数 Virtual

您甚至可以使用更多选项来获取更多详细信息。 -j 选项显示永久段的文件的路径。 -l 选项提供关于段的更多详细信息, -r 选项显示每个段使用的内存范围。下面是带  -l-r和  -j 选项的  svmon 命令的示例:
# 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字段同样适用。摘要部分中显示的值由进程使用的所有段的 InusePinPgsp 和 Virtual 计数器的总和组成。

在以上示例中,e83dd 段由若干进程使用,这些进程的 PID 是 17552、17290、17032、16264、14968 和 9620。

你可能感兴趣的:(虚拟机,工作,IBM,perl,J#)