分类:
2006-05-16 00:40:38
svmon 和 vmstat 输出之间的关系
在 svmon 和 vmstat 的输出之间有关系。svmon 的报告在AIX
# svmon -G
m e m o r y i n u s e p i n p g s p a c e
size inuse free pin work pers clnt work pers clnt size inuse
16384 16254 130 2016 11198 2537 2519 2016 0 0 40960 13392
vmstat 命令在一个分离窗口中运行,同时 svmon 也在运行。vmstat 的报告如下所示:
# vmstat 5
kthr memory page faults cpu
----- ----------- ------------------------ ------------ -----------
r b avm fre re pi po fr sr cy in sy cs us sy id wa
0 0 13392 130 0 0 0 0 2 0 125 140 36 2 1 97 0
0 0 13336 199 0 0 0 0 0 0 145 14028 38 11 22 67 0
0 0 13336 199 0 0 0 0 0 0 141 49 31 1 1 98 0
0 0 13336 199 0 0 0 0 0 0 142 49 32 1 1 98 0
0 0 13336 199 0 0 0 0 0 0 145 49 32 1 1 99 0
0 0 13336 199 0 0 0 0 0 0 163 49 33 1 1 92 6
0 0 13336 199 0 0 0 0 0 0 142 49 32 0 1 98 0
全局的 svmon 报告显示了相关的数字。vmstatfre 一栏和 svmon memory free 一栏之间有联系。vmstat 对于动态虚拟内存 (avm) 的报告是由 svmon 命令 pg space inuse 的报告提供的 (13392)。
vmstat avm 一栏提供了和 pg space inuse 一栏一样的值,后面的值是从 svmon 命令得到,除了从AIX
svmon 和 ps 输出的关系
在 svmon 和 ps 的输出之间是有某些联系的。svmon 的报告在 AIX
# svmon -P 7226
Pid Command Inuse Pin Pgspace
7226 telnetd 936 1 69
进程标识符: 7226
命令: telnetd
Segid Type Description Inuse
828 pers /dev/hd2:15333 0 0 0 0..0
1d3e work lib data 0 0 28 0..559
909 work shared library text 930 0 8 0..65535
1cbb work sreg[3] 0 0 1 0..0
1694 work private 6 1 32 0..24 : 65310..65535
同ps 的报告比较,还有以下的内容:
# ps v 7226
PID TTY STAT TIME PGIN SIZE RSS LIM TSIZ TRS %CPU %MEM COMMAND
7226 - A 0:00 51 240 24 32768 33 0 0.0 0.0 telnetd
SIZE 指的是进程的数据区域的虚拟容量(在字分页空间),用 KB 计。这个数目等于进程已使用的工作段页的数目(即在字分页空间被分配的页的数目)的4倍。该数必须乘以 4 是因为页面是以 4K 为单位而SIZE 是以 1K 为单位。如果一些工作段页最近被调出,这个数值将大于实际内存的数目。SIZE 的值 (240) 与Pgspace 的数值相关,该数值由 svmon 命令的 private (32) 加上 lib data (28) 得到,以 1K 为单位。
RSS 指的是进程实际内存(驻留集合)的容量,用千字节表示。这个数值等于于进程内存中的工作段页和代码段页数和的 4 倍。记住代码段页是为所有当前程序运行的实例所共享的。如果 26 ksh 进程正在运行,只有 ksh 的可执行程序的页面的一个副本可以驻留在内存,但是 ps 命令会将代码段的大小作为每一个 RSS 的一部分,而该部分是 ksh 程序的一个实例。RSS 的值 (24) 与 Inuse 的值相关,后面的值由svmon 命令提供,为了进程的 private (6) 工作存储段,为了code (0) 段,也为了 lib data (0)。以 1K 计。
TRS 指的是文本的驻留集合(实际内存中)的容量。这个数字等于代码的数目乘以 4。正如我们较早提到的,这个数目大于程序使用内存的数目去乘以运行的实例的数目。这不包括进程的共享文本。TRS 的值 (0) 与 svmon 在 code 段里的页数相关,该段在 Inuse 栏里,以 1K 计。TRS 的值可能比 TSIZ 的值要大因为其他页,如 XCOFF 头文件,和载入区,可能包含在代码段里。
下面的计算公式有助于理解我们以上提到的值:
SIZE = 4 * Pgspace of (work lib data + work private)
RSS = 4 * Inuse of (work lib data + work private + pers code)