数据库查看内存使用INFORMIX
查看内存使用
在操作系统的运行过程中,管理员常常需要了解系统内存的使用情况,并以此为依据来指导对系统性能的调优,使系统和应用程序运行在最佳的状态。查看内存使用,我们最常用的命令是vmstat、ps 和 svmon。
使用 vmstat 命令确定内存使用情况
----- ----------- ------------------------------------ -----------
r b avm fre re pi po fr sr cy in sy cs us sy id wa
1 3 113726 124 0 14 6151 600 0 521 5533 816 23 13 7 57
0 3 113643 346 0 2 14208 690 0 585 2201 866 16 9 2 73
0 3 113659 135 0 2 2108 323 0 516 1563 797 25 7 2 66
0 2 113661 122 0 3 2120 375 0 527 1622 871 13 7 2 79
0 3 113662 128 0 10 3134 432 0 644 1434 948 22 7 4 67
1 5 113858 238 0 35 1146 422 0 599 5103 903 40 16 0 44
0 3 113969 127 0 5 10153 529 0 565 2006 823 19 8 3 70
0 3 113983 125 0 33 5153 424 0 559 2165 921 25 8 4 63
0 3 113682 121 0 20 9154 470 0 608 1569 1007 15 8 0 77
0 4 113701 124 0 3 29228 635 0 674 1730 1086 18 9 0 73
要察看系统的 VMM 是否有性能问题,请检查 memory 和 page 下的列:
- avm
活动虚拟内存 avm 列显示在收集 vmstat 样本时存在的活动虚拟内存页面数。缺省策略为延迟页面空间策略。在该策略下,avm 的值可能比使用的调页空间页面数要高。avm 统计信息并不包含文件页面。
- fre
fre 列显示的是空闲内存页面的平均数量。一个内存页面是实内存中大小为4 KB 的区域。系统维护内存页面的缓冲区,称为空闲列表。当 VMM 需要空间时可以很方便地访问此空闲列表。VMM 在空闲列表上保存的最少页数由 vmo 命令的 minfree 参数决定。
当一个应用程序终止时,它所有的工作页面会立即返回给空闲列表。然而,它的持久页面(或文件)仍然在 RAM 中,不会添加回空闲列表中,直到由 VMM 窃取用于其它程序为止。如果删除相应的文件,也会释放其持久页面。
由于这个原因,fre 的值可能不表示进程可以方便使用所有实内存。如果需要页面,那与已终止应用程序相关的持久页面将会最先移交给另一个程序。
如果 fre 的值远大于 maxfree 的值,那不太可能出现系统颠簸。系统颠簸意味着系统一直在进行页面调进调出。然而,如果系统正在经历抖动,可以肯定 fre 值很小。
- 交换页面
显示和缺页故障和页面调度活动相关的信息。它们显示一段时间间隔的平均值,并以秒为单位给出。
- re
注:
这一栏当前不受支持。
- pi
pi 列详细描述了从调页空间调入的页数。调页空间是驻留在磁盘上的虚拟内存的一部分。当内存过量使用时,它用作溢出。调页空间由用于存储从实内存中窃取到的工作段页面的逻辑卷组成。当进程访问一个窃取页时,产生了一个缺页故障,这一页必须从调页空间读入内存。
因为硬件配置、软件和应用程序的不同,没有绝对的数字可以用以参考。这个字段是调页空间活动的关键指示符。如果发生页面调进,该页面就一定在较早的的时候有一个页面调出动作。在内存受限的环境下也有可能每一次页面调进会迫使另一个页面被窃取从而页面调出。
- po
po 一栏显示了调出到调页空间的页面数(速率)。无论什么时候窃取工作段内存的一页,如果它仍未驻留在调页空间中或已被修改,那它会被写入调页空间。如果不被再次访问,它会留在页面调度设备中直到进程终止或放弃空间。如果包含在出故障页面中的后续地址引用导致缺页故障,那么这些页面将会由系统个别调进。当一个进程正常终止,任何分配给该进程的调页空间将被释放。如果系统读入大量的持久页面,您会发觉 po 栏里增加了而在 pi 栏里没有相应增加。这并不一定会造成系统颠簸,但可以保证对于应用程序数据存取模式的访问。
- fr
在一定时间间隔内根据页面替换算法每秒所释放的页数。当 VMM 页面替换例程扫描页面帧表(Page Frame Table,PFT)时,它根据一些条件来选取要窃取的页面以插入到可用内存帧的空闲列表中。该条件包含了两种页面,工作(计算的)和文件(持久的)页面。就因为页面已经释放,并不意味着发生了任何 I/O。例如,如果某个持久存储(文件)页面尚未修改,它就不会被写回磁盘。如果 I/O 不是必需的,则要求最小的系统资源来释放页面。
- sr
在一定时间间隔内根据页面替换算法每秒所检查的页面数。页面替换算法在可以窃取足够的页面以满足页面替换线程的需要之前,可能不得不扫描许多页面帧。sr 值比 fr 值高得越多,页面替换算法查找要窃取的合格页面就越困难。
- cy
时钟算法中每秒的周期数。VMM 使用一种叫时钟算法的技术来选择要替换的页面。这种技术利用了每一个页面的访问位来指示哪些页最近曾被使用(访问)过。调用页面窃取程序例程时,它遍历整个 PFT,检查每一页的访问位。
cy 一栏显示了每秒页面替换代码扫描了 PFT 多少次。因为插入空闲列表可以不需要完全扫描 PFT,并且因为所有的vmstat 字段报告为整数,这一字段通常为 0。
确定一个系统的适当 RAM 数量的一种方法是察看 avm 字段的最大值,该字段由 vmstat 命令报告。将该数字乘以 4K 得到字节数,然后将其与系统的 RAM 字节数比较。理想情况下,avm 应该比总 RAM 数小。如果不是,可能会出现一些虚拟内存页面调度量。有多少页面调度发生取决于两个值之间的差值。记住,虚拟内存的概念是提供给我们寻址大于实内存容量的能力(一些在 RAM 内存中,而另一些在调页空间中)。但是如果虚拟内存远大于实内存,可能造成过度的页面调度,从而导致延时。如果 avm 小于 RAM,那么当 RAM 中充满持久文件页时也会引起调页空间的页面调度。这种情况下,调整minperm、maxperm 和 maxclient 的值可以减少调页空间的页面调度量。
vmstat -I 命令
vmstat -I命令显示其它信息,例如每秒调进的文件和每秒调出的文件(即那些不是调页空间调进或调页空间调出的所有 VMM 调进调出)。使用这个标志不会报告 re 和 cy 栏。
vmstat -s 命令
摘要选项 -s 向标准输出发送摘要报告,该报告从系统初始化开始,以绝对计数表示,而不是基于某个时间间隔。推荐使用该参数的方法是在有工作负载之前运行该命令,保存输出,在有工作负载后再次运行此命令,并保存输出。下一步就是确定两组输出间的差异。自动实现该操作的awk 脚本名为 vmstatit,详细内容如下:
vmstat -s >temp.file # cumulative counts before the command
time $1 # command under test
vmstat -s >>temp.file # cumulative counts after execution
grep "pagi.*ins" temp.file >>results # extract only the data
grep "pagi.*outs" temp.file >>results # of interest
# vmstat -s
3231543 total address trans. faults
63623 page ins
383540 page outs
149 paging space page ins
832 paging space page outs
0 total reclaims
807729 zero filled pagesfaults
4450 executable filled pages faults
429258 pages examined by clock
8 revolutions of the clock hand
175846 pages freed by the clock
18975 backtracks
0 lock misses
40 free frame waits
0 extend XPT waits
16984 pending I/O waits
186443 start I/Os
186443 iodones
141695229 cpu context switches
317690215 device interrupts
0 software interrupts
0 traps
55102397 syscalls
总结里的页面调进和页面调出的数量代表虚拟内存从交换页面空间和文件空间调进或调出页面的活动。调页空间的页面调进调出代表整个页面空间。
用 ps 命令确定内存使用情况
ps命令也可以用来监视个别进程对内存的使用。ps v PID 命令为个别进程提供了最全面的内存相关统计信息的报告,例如:
PID TTY STAT TIME PGIN SIZE RSS LIM TSIZ TRS %CPU %MEM COMMAND
36626 pts/3 A 0:00 0 316 408 32768 51 60 0.0 0.0 ps v
缺页故障引起的页面调进的数目。既然所有 I/O 归于缺页故障,那这个值主要就是 I/O 量的数值。
注:
ps命令并不表明共享内存段或者内存映像段消耗的内存。因为许多应用程序会使用共享内存或内存映射段,所以svmon 命令是一个更好的查看这些段的内存使用情况的工具。
svmon 命令
如果使用时间间隔(-i 选项),统计信息将会一直显示直到命令被杀死或者直到达到了时间间隔的数值(可以在该时间间隔后指定)。
显示指定活动进程的内存使用情况。如果不提供进程列表,则内存使用统计信息显示所有活动的进程。
显示指定段的内存使用情况。如果不提供段的列表,则内存使用统计信息显示所有定义的段。
显示指定登录名的内存使用统计信息。如果不提供登录名列表,则显示所有定义的登录名的内存使用统计信息。
显示指定的工作负载管理类的内存使用统计信息。如果不提供类,则显示所有定义的类的内存使用统计信息。
显示帧的信息。不指定帧的号码时,会报告使用的内存的百分比。如果在系统上定义了一个大的页池,那么将报告大页内存使用百分比。而当指定了帧号时,会报告该帧的信息。
显示层的信息,例如层号,使用 -a 标志时的超类名和实内存中属于层的段的总页数。
使用中的内存量
打印全局的统计信息,要用 -G 标志。在以下示例中,以一秒钟的时间间隔重复两次。
# svmon -G -i 1 2
size inuse free pin virtual
memory 1048576 425275 623301 66521 159191
pg space 262144 31995
work pers clnt lpage
pin 46041 0 0 20480
in use 129600 275195 0 0
pgsize size free
lpage pool 16 MB 5 5
size inuse free pin virtual
memory 1048576 425279 623297 66521 159195
pg space 262144 31995
work pers clnt lpage
pin 46041 0 0 20480
in use 129604 275195 0 0
pgsize size free
lpage pool 16 MB 5 5
请注意,如果在系统上没有配置大页池,那么将不会显示大页池内存。
结果 svmon 报告中的列描述如下:
memory
描述实内存使用情况的统计信息,显示为 4KB 大小的页。
size
整个内存的大小,以 4KB 页计。
inuse
RAM 中进程使用的页数加上属于终止进程但仍驻留在 RAM 中的持久页面数。这个值等于总内存大小减去空闲列表中的页数。
free
空闲列表中页面的数量。
pin
锁定在RAM 的页面的数量。(一个锁定的页面就是一直驻留在 RAM 中而不能调出的页面)。
virtual
在进程虚拟空间中分配的页数。
pg space
描述调页空间使用情况的统计信息,以 4KB 大小的页显示。该数据只有当不使用 -r 标志时才会报告。报告的值是所使用的实际调页空间页面数,这表明这些页面调出到了调页空间中。它与 vmstat 命令的不同在于 vmstat 命令的 avm 一栏显示的是已访问但不一定调出的虚拟内存。
size
总调页空间的大小,以 4KB 页计。
inuse
分配页的总数。
pin
包含锁定页面的实内存子集的详细统计信息,以 4KB 帧显示。
work
锁定在RAM 中的工作页面的数量。
pers
锁定在RAM 中的持久页面数量。
clnt
锁定在RAM 中的客户机页面的数量。
lpage
只有当系统上配置了大页时才显示。用作锁定在 RAM 中的大页的 4 KB 页数。
in use
正在使用的实内存子集的详细统计信息,以 4KB 帧显示。
work
RAM 中工作页面的数量。
pers
RAM 中持久页面的数量。
clnt
RAM 中客户机页面的数量(客户机页面就是一个远程文件页面)。
lpage
只有当系统上配置了大页时才显示。用作锁定在 RAM 中的大页的 4 KB 页数。
lpage pool
只有当系统上配置了大页时才显示。关于大页内存池的详细统计信息。
pgsize
大页的大小,以兆字节(MB)计。
size
配置的大页数。
free
可供使用的大页数。
在示例中,总内存大小有 1048576 页。将这个数乘以 4096 就是总实内存的大小(以字节计)(4 GB)。其中 425275 页正在使用,而空闲列表中有 623301 页,锁定在 RAM 中的有 66521 页。在所有正在使用的页中,RAM 中有 129600 页工作页面,275195页持久页面和 0 页客户机页面。这三个部分(如果您包括大页,则为四个部分)的总和等于 memory 部分中 inuse 一栏的数值。pin 部分将锁定的内存大小划分为工作、持久、客户机以及 lpage(有时)四类。它们的和等于 memory 部分中的 pin 一栏的值。调页空间总共有 262144 页(1 GB),其中有31995 页正在使用。memory 中的 inuse 一栏通常要比 pg space 中的 inuse 一栏要大,因为当一个程序完成后,文件页面占用的内存不会释放,而调页空间分配则会释放内存。
进程的内存使用情况
svmon -P命令显示了当前正在系统上运行的所有进程的内存使用统计信息。下面是一个例子:
# svmon -P
-------------------------------------------------------------------------------
Pid Command Inuse Pin Pgsp Virtual 64-bit Mthrd LPage
16264 IBM.ServiceRM 10075 3345 3064 13310 N Y N
PageSize Inuse Pin Pgsp Virtual
4 KB 10075 3345 3064 13310
16 MB 0 0 0 0
Vsid Esid TypeDescription LPage Inuse Pin Pgsp Virtual
f001e d work shared library text - 4857 0 36 6823
0 0 work kernel seg - 4205 3335 2674 5197
b83f7 2 work processprivate - 898 2 242 1098
503ea f work shared librarydata - 63 0 97 165
c8439 1 pers code,/dev/hd2:149841 - 28 0 - -
883f1 - work - 21 8 14 26
e83dd - pers/dev/hd2:71733 - 2 0 - -
f043e 4 work shared memorysegment - 1 0 1 1
c0438 - pers large file/dev/hd9var:243 - 0 0 - -
b8437 3 mmap mapped to sida03f4 - 0 0 - -
583eb - pers large file/dev/hd9var:247 - 0 0 - -
-------------------------------------------------------------------------------
Pid Command Inuse Pin Pgsp Virtual 64-bit Mthrd LPage
17032IBM.CSMAgentR 9791 3347 3167 12944 N Y N
PageSize Inuse Pin Pgsp Virtual
4 KB 9791 3347 3167 12944
16 MB 0 0 0 0
Vsid Esid Type Description LPage Inuse Pin Pgsp Virtual
f001e d work shared librarytext - 4857 0 36 6823
0 0 work kernel seg - 4205 3335 2674 5197
400 2 work process private - 479 2 303 674
38407 f work sharedlibrary data - 120 0 127 211
a83f5 1 pers code,/dev/hd2:149840 - 99 0 - -
7840f - work - 28 10 27 39
e83dd - pers/dev/hd2:71733 - 2 0 - -
babf7 - pers/dev/hd2:284985 - 1 0 - -
383e7 - pers large file/dev/hd9var:186 - 0 0 - -
e03fc - pers large file/dev/hd9var:204 - 0 0 - -
f839f 3 mmap mapped to sid5840b - 0 0 - -
[...]
该命令输出详细描述了每个进程的全局内存使用情况,以及每个报告的进程所使用的每个段的内存使用详细情况。缺省的排序规则是按照虚拟页计数的降序。您可以通过使用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 LPage
16264IBM.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反映了用于访问相应页的段寄存器。还显示了段的类型及其描述,该描述为段的文本性描述,包括卷名以及持久段的文件索引节点。该报告还详细描述了段是否使用大页面 LPage、RAM 中的页数Inuse、RAM 中的锁定页数 Pin、调页空间中的页数 Pgsp 以及虚拟页数 Virtual。
您甚至可以使用更多选项来获取更多详细信息。-j 选项显示持久段的文件的路径。-l 选项提供关于段的更多详细信息,-r 选项显示每个段使用的内存范围。以下是 svmon 命令带 -l、-r 和 -j 选项的示例:
# svmon -S f001e 400 e83dd -l -r -j
Vsid Esid TypeDescription LPage Inuse Pin Pgsp Virtual
f001e d work sharedlibrary text - 4857 0 36 6823
Addr Range:0..60123
Shared library text segment
400 2 work processprivate - 480 2 303 675
Addr Range:0..969 : 65305..65535
pid(s)=17032
e83dd - pers/dev/hd2:71733 - 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。
特定段标识的详细信息
-D选项显示了段的内存使用的详细统计信息。
下面是一个例子:
# svmon -D 38287 -b
Segid: 38287
Type: working
LPage: N
Address Range: 0..484
Size of page space allocation: 2 pages ( 0,0 MB)
Virtual: 18 frames (0,1 MB)
Inuse: 16 frames (0,1 MB)
Page Frame Pin Ref Mod ExtSegid ExtPage
341 527720 N N N - -
342 996079 N N N - -
343 524936 N N N - -
344 985024 N N N - -
347 658735 N N N - -
348 78158 N N N - -
349 174728 N N N - -
350 758694 N N N - -
404 516554 N N N - -
406 740622 N Y N - -
411 528313 N Y Y - -
412 1005599 N Y N - -
416 509936 N N Y - -
440 836295 N N Y - -
443 60204 N N Y - -
446 655288 N N Y - -
各列的说明如下:
Page
指定段内页面的索引。
Frame
指定驻留在实内存的帧索引。
Pin
指定表示该页是否锁定的标志。
Ref
仅用 -b 标志指定。指定表示该页的访问位是否有效的标志。
Mod
仅用 -b 标志指定。指定表示该页是否修改的标志。
ExtSegid
如果页属于链接到被检查段的扩展段,则会显示该段的虚拟段标识。
ExtPage
如果页属于链接到被检查段的扩展段,则会显示该扩展段中的页索引。
以下是 svmon -b 命令的一个示例:
# svmon -b
Page Frame Pin Ref Mod ExtSegid ExtPage
65574 345324 N N N 288071 38
65575 707166 N N N 288071 39
65576 617193 N N N 288071 40
-b标志显示了所有显示的帧的访问和修改位的状态。显示之后,帧的访问位将被复位。当使用 -i 标志时,它检测每一个时间间隔内哪些帧可以访问。
注:
由于对性能会造成影响,请谨慎使用 -b 标志。
使用内存最多的段的列表
-S选项用于按内存使用情况对段排序,并且显示指定段的内存使用统计信息。如果不提供段的列表,则内存使用统计信息显示所有定义的段。以下命令按实内存中的页数多少排列系统和非系统段。-t 选项可用于将显示的段数限制为指定的计数。-u 标志按实内存中的总页数降序排列输出。
下面是 svmon 命令带 -S、-t 和 -u 选项的示例输出:
# svmon -Sut 10
Vsid Esid Type Description LPage Inuse Pin Pgsp Virtual
70c4e - pers large file/dev/lv01:26 - 84625 0 - -
22ec4 - work - 29576 0 0 29586
8b091 - pers/dev/hd3:123 - 24403 0 - -
7800f - work kernelheap - 22050 3199 19690 22903
a2db4 - pers/dev/hd3:105 - 15833 0 - -
80010 - work page frame table - 15120 15120 0 15120
7000e - work misc kerneltables - 13991 0 2388 14104
dc09b - pers /dev/hd1:28703 - 9496 0 - -
730ee - pers /dev/hd3:111 - 8568 0 - -
f001e - work - 4857 0 36 6823
svmon 和 vmstat 命令输出的相关性
svmon和 vmstat 的输出之间存在相关性。
下面是 svmon 命令的示例输出:
# svmon -G
size inuse free pin virtual
memory 1048576 417374 631202 66533 151468
pg space 262144 31993
work pers clnt lpage
pin 46053 0 0 20480
in use 121948 274946 0 0
pgsize size free
lpage pool 16 MB 5 5
vmstat命令在一个独立的窗口中运行,与此同时 svmon 也在运行。vmstat 的报告如下所示:
# vmstat 3
kthr memory page faults cpu
----- ----------- ------------------------------------ -----------
r b avm fre re pi po fr sr cy in sy cs us sy id wa
1 5 205031 749504 0 0 0 0 0 0 1240 248 318 0 0 99 0
2 2 151360 631310 0 0 3 3 32 0 1187 1718 641 1 198 0
1 0 151366 631304 0 0 0 0 0 0 1335 2240 535 0 1 99 0
1 0 151366 631304 0 0 0 0 0 0 1303 2434 528 1 495 0
1 0 151367 631303 0 0 0 0 0 0 1331 2202 528 0 099 0
全局 svmon 报告显示了相关的数字。vmstat 命令的 fre 列与svmon 命令的 memory fre 列相接近。vmstat 命令报告的活动虚拟内存 avm 值与 svmon 命令报告的虚拟内存值接近。
svmon 和 ps 命令输出的相关性
svmon和 ps 命令输出之间存在着一些联系。svmon 命令输出如下:
# svmon -P 14706
-------------------------------------------------------------------------------
Pid Command Inuse Pin Pgsp Virtual 64-bit Mthrd LPage
14706 itesmdem 9067 3337 2833 12198 N N N
PageSize Inuse Pin Pgsp Virtual
4 KB 9067 3337 2833 12198
16 MB 0 0 0 0
Vsid Esid TypeDescription LPage Inuse Pin Pgsp Virtual
f001e d work sharedlibrary text - 4857 0 36 6823
0 0 work kernel seg - 4205 3335 2674 5197
f039e 2 work processprivate - 5 2 27 29
b8397 3 work shared memorysegment - 0 0 1 1
d039a 6 work shared memorysegment - 0 0 1 1
c0398 4 work shared memorysegment - 0 0 1 1
d839b 7 work shared memorysegment - 0 0 1 1
e839d f work sharedlibrary data - 0 0 91 144
c8399 5 work shared memorysegment - 0 0 1 1
83a1 1 pers code,/dev/hd2:221359 - 0 0 - -
将上述示例与下面的ps 报告作比较:
# ps v 14706
PID TTY STAT TIME PGIN SIZE RSS LIM TSIZ TRS %CPU %MEM COMMAND
14706 - A 0:00 16 692 20 32768 19 0 0,0 0,0 /usr/bin/
SIZE 值328 与 svmon 命令的 Virtual 值相关,由 process private 值(59)加上 shared library data 值(23)得到,以 1 KB 为单位。这个数目等于进程已使用的工作段页的数目(即已分配的虚拟页的数目)的 4 倍。该数必须乘以 4 是因为页面是以 4KB 为单位而 SIZE 是以1KB 为单位的。如果一些工作段页当前被调出,这个数值将大于所使用的实内存量。SIZE 值(692)与 Virtual 数字相关,该数字由 svmon 命令得到,对应于process private(29)加上 sharedlibrary data(144),以 1 KB 为单位。
RSS 指的是进程实内存(驻留集合)的大小,用 KB 表示。这个数值等于内存中的工作段页和代码段页数和的 4 倍。记住代码段页是为所有当前程序运行的实例所共享的。如果 26 个 ksh 进程正在运行,只有ksh 的可执行程序的任何给定页面的一个副本可以驻留在内存,但是ps 命令会将代码段的大小作为每一个 RSS 的一部分报告,而该部分是 ksh 程序的一个实例。RSS 值(20)与 Inuse 数字相关,该数字由 svmon 命令得到,对应于进程的 process private 值(5 个工作存储段)、code,/dev/hd2:221359(0) 段以及 shared library data 值(0),以 1 KB 为单位。
TRS 值指的是驻留的文本集合(实内存)大小。这个数字等于代码段页数乘以 4。正如我们较早提到的,这个数目夸大程序正在运行多个实例的程序的内存使用。这不包括进程的共享文本。TRS 值(232)与 Inuse 列的 code 段(58)中的 svmon 页数有关,以 1KB 为单位。TRS 的值可能比 TSIZ 的值要大,因为其它页,如 XCOFF 头和载入程序区,可能包含在代码段里。
可以对提到的值进行下列计算:
SIZE = 4 * Virtual of (work lib data + workprivate)
RSS =4 * Inuse of (work lib data + work private + pers code)
TRS =4 * Inuse of (pers code)
最小内存需求计算
用以计算程序的最小内存需求的公式如下:
总内存页数(以 4 KB 为单位)= T + ( N * ( PD + LD ) ) + F
其中:
T
= 文本页数(所有用户共享)
N
= 该程序同时运行的副本数
PD
= 进程私有段中的工作段数
LD
= 进程使用的共享库数据页数
F
= 文件页数(所有用户共享)
得到的结果乘以 4 就得到所需要的数值,以千字节计。您可能也希望将内核中的内核扩展和共享库文本段的值加到这个值上,即使它们是为系统中所有进程共享的。例如,一些如 CATIA 的应用程序和数据库使用很大的共享库模块。注意到由于我们只用了进程的单一快照的统计信息,不保证我们从公式得到的值就是正确的进程的最小工作集合的大小值。要获得工作集大小,须运行诸如rmss 命令之类的工具或者在进程活动期间捕获大量快照,并从这些快照取平均值。详细内容,可参考rmss 命令用法。
数据库查看内存使用INFORMIX相关推荐
- 网购计算机如何看显卡信息,电脑显卡是什么 怎么查显卡显存【图文】
电脑显卡是什么?相信对于大部人都懂的怎么使用电脑,却不知道电脑显卡是什么.电脑显卡是电脑关键的一部分,如果没有了电脑显卡,即使有显示频也不能显示.相信对于一些游戏玩家来说,显卡这个名词必须是很熟悉,因 ...
- 在oracle 中编写一个程序,用VC 开 发 基 于ORACLE 数 据 库 应 用 程 序 的 两 种 方 法...
用VC 开 发 基 于ORACLE 数 据 库 应 用 程 序 的 两 种 方 法 北 京 航 空 航 天 大 学 计 算 机 科 学 与 工 程 系 黎 杰 麦 中 凡 ---- 1. 引 言 -- ...
- 我如何构建SiriWaveJS库:看一下数学和代码
by Flavio De Stefano 由弗拉维奥·德·斯特凡诺(Flavio De Stefano) 我如何构建SiriWaveJS库:看一下数学和代码 (How I built the Siri ...
- jssdk 保存文件到手机_手机混用闪存到底是真是假?教你查手机闪存型号
原标题:手机混用闪存到底是真是假?教你查手机闪存型号 最近,网上传言某手机混用闪存,将UFS 3.0和UFS 3.1的闪存混用在了同一型号的机器上,买不同容量的手机,闪存协议不一样.光从这个描述来看, ...
- 如何知道计算机显卡内存,电脑显卡是什么 怎么查显卡显存【图文】
电脑显卡是什么?相信对于大部人都懂的怎么使用电脑,却不知道电脑显卡是什么.电脑显卡是电脑关键的一部分,如果没有了电脑显卡,即使有显示频也不能显示.相信对于一些游戏玩家来说,显卡这个名词必须是很熟悉,因 ...
- Python学习必备:10个奇妙的Python库,看完后我惊呆了
前言 10个奇妙的Python库,看完后我惊呆了! 让我们愉快地开始吧~编程学习资料点击免费领取 开发工具 Python版本: 3.6.4 相关模块: socket模块: textblob模块: py ...
- 微信公众号多题库查题接口
微信公众号多题库查题接口 本平台优点: 多题库查题.独立后台.响应速度快.全网平台可查.功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题库: 查题校园题库:查题校园题库后台(点击跳 ...
- f分布表完整图_标准正态分布函数数值表怎么查?(加完整分布函数表)
最近在整理数据时,忽然想到数理统计的其中一种分布,相信作为质量人一定不陌生,我们常常提到数据的分布是否服从正态分布,这是对一组连续数据分布一种描述,还会涉及到如何检验正态分布,对于这个分布的来龙去脉和 ...
- 公众号多题库查题系统
公众号多题库查题系统 本平台优点: 多题库查题.独立后台.响应速度快.全网平台可查.功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题库: 题库:题库后台(点击跳转) 题库后台: 3 ...
- 从微盟删库事件看数据备份和项目管理
3 月初,闹得沸沸扬扬的「微盟删库」事件终于有了一个解决方案,也让不少技术人唏嘘不已,一个上市公司的数据备份和项目管理流程居然如此不堪. 事故经过 先来看下此次事故的时间线. 2 月 23 日,因公司 ...
最新文章
- 深入实践Spring Boot1.3.2 一个简单的实例
- 5G NGC — CAPIF 网络能力开放框架
- 第一次玩,试试手(标题)
- 数据结构与算法————稀疏数组
- Web安全之拖放劫持
- Web开发如何实现Tomcat等服务器热部署不用重启
- URDGN:Ultra-resolve Face Images by Discriminative Generative Networks
- (实用工具分享)网页尺寸测量工具Page Ruler
- Checkra1n 越狱常见问题大全
- Windows文件所有者恢复TrustedInstaller权限
- walking机器人入门教程-软件清单
- UserData使用总结[转载-lanyu]
- 2074:【21CSPJ普及组】分糖果(candy)
- java DTO对象与PO对象的相互转换
- 小程序获取链接中的参数
- 0008基于单片机自动喂养控制系统设计
- ES安装报错信息(持续更新)
- 什么是体、性、用、相?
- 高中计算机考试ps,高中信息技术会考Photoshop操作题试题及分析
- HTML5经典面试题
热门文章
- HTML5期末大作业:我的家乡网站设计——我的家乡-杭州(7页) HTML+CSS+JavaScript 大学生家乡网页作品 老家网页设计作业模板 学生网页制作源代码下载
- QQ2000 的聊天室刷屏机设计技术
- 解决Linux下使用QQ的问题
- 彗星撞地球-Warez组织的经典力作(15G动画压缩成64Kb的那个,2004年的第一名)
- 梦幻群侠传5帮派修炼_梦幻群侠传5手游下载
- attachEvent方法绑定事件
- uploadify 302 php,jQuery Uploadify 上传插件出现Http Error 302 错误的解决办法
- 乐谱管理软件SheetAble
- word三线表标题两条线之间如何出现空白间隔(论文必备)
- 机器学习实战练手项目