您的位置:首页 > 其它

solaris的sar命令(三)

2013-03-01 09:45 127 查看

如何检查页出和内存 (sar
-g)

使用 sar -g 命令可显示平均页出和内存释放活动。

$ sar -g
00:00:00  pgout/s ppgout/s pgfree/s pgscan/s %ufs_ipf
01:00:00     0.00     0.00     0.00     0.00     0.00
sar -g 命令的输出可以明确指示是否需要更多内存。使用
ps -elf 命令显示 page 守护程序使用的周期数。如果周期数很大,并且 pgfree/s
和 pgscan/s 字段的值也很大,则表明内存不足。
sar -g 命令还可表明是否回收 inode
的速率过快而引起可重用页丢失。

示例 13–8 检查页出和内存 (sar
-g)


以下示例显示 sar -g 命令的输出。
$ sar -g
SunOS balmyday 5.10 s10_51 sun4u    03/18/2004
00:00:00  pgout/s ppgout/s pgfree/s pgscan/s %ufs_ipf
01:00:00     0.00     0.00     0.00     0.00     0.00
02:00:00     0.01     0.01     0.01     0.00     0.00
03:00:00     0.00     0.00     0.00     0.00     0.00
04:00:00     0.00     0.00     0.00     0.00     0.00
05:00:00     0.00     0.00     0.00     0.00     0.00
06:00:00     0.00     0.00     0.00     0.00     0.00
07:00:00     0.00     0.00     0.00     0.00     0.00
08:00:00     0.00     0.00     0.00     0.00     0.00
08:20:01     0.00     0.00     0.00     0.00     0.00
08:40:00     0.00     0.00     0.00     0.00     0.00
09:00:00     0.00     0.00     0.00     0.00     0.00
09:20:01     0.05     0.52     1.62    10.16     0.00
09:40:01     0.03     0.44     1.47     4.77     0.00
10:00:02     0.13     2.00     4.38    12.28     0.00
10:20:03     0.37     4.68    12.26    33.80     0.00
Average      0.02     0.25     0.64     1.97     0.00
下表介绍了 -g 选项的输出。
字段名 说明
pgout/s 每秒的页出请求数。
ppgout/s 每秒调出的页的实际数量。单个页出请求可能涉及多个页的调出。
pgfree/s 每秒放置在可用列表中的页数。
pgscan/s page 守护程序每秒扫描的页数。如果此值很大,则表明
page 守护程序花费大量时间来检查可用内存。此情况暗示,可能需要更多内存。
%ufs_ipf 具有关联的可重用页的 iget 从可用列表中取消的 ufs
inode 的百分比。这些页面被刷新,并且不能由进程回收。因此,此字段表示具有页面刷新的 igets 的百分比。如果该值很大,则表明
inode 的可用列表页面密集,并且可能需要增加 ufs inode 的数量。

检查内核内存分配

KMA 允许内核子系统根据需要分配和释放内存。
KMA
并不是静态分配在峰值载荷下预计所需的最大内存量,而是将内存请求划分为三个类别:

小型(少于 256 字节)

大型(512 字节至 4 千字节)

超大型(大于 4 千字节)

KMA
保留两个内存池,以满足小型和大型请求。超大型请求则通过从系统页面分配器中分配内存来满足。
如果您所检查的系统用来编写使用 KMA 资源的驱动程序或 STREAMS,则 sar
-k 命令可能很有用。否则,您可能不需要它所提供的信息。使用 KMA
资源但不一定在退出前返回资源的所有驱动程序或模块都可能产生内存泄漏。内存泄漏会导致 KMA 分配的内存量随事件而增加。因此,如果 sar
-k 命令的 alloc
字段随时间稳定增加,则可能存在内存泄漏。表明存在内存泄漏的另一种情况是请求失败。如果出现此问题,内存泄漏很可能导致 KMA 无法保留和分配内存。

如果似乎存在内存泄漏,则应检查可能从 KMA 请求内存但未返回内存的所有驱动程序或
STREAMS。

如何检查内核内存分配 (sar
-k)

使用 sar -k 命令可报告内核内存分配器 (Kernel
Memory Allocator, KMA) 的以下活动。
$ sar -k
00:00:00 sml_mem   alloc  fail  lg_mem   alloc   fail  ovsz_alloc  fail
01:00:00 2523136 1866512     0 18939904 14762364    0      360448     0
02:00:02 2523136 1861724     0 18939904 14778748    0      360448     0
示例 13–9 检查内核内存分配 (sar
[b]-k
)[/b]

下面是 sar -k 输出的缩写示例。
$ sar -k
SunOS balmyday 5.10 s10_51 sun4u    03/18/2004
00:00:04 sml_mem   alloc  fail  lg_mem   alloc  fail  ovsz_alloc  fail
01:00:00 6119744 4852865     0 60243968 54334808   156     9666560     0
02:00:01 6119744 4853057     0 60243968 54336088   156     9666560     0
03:00:00 6119744 4853297     0 60243968 54335760   156     9666560     0
04:00:00 6119744 4857673     0 60252160 54375280   156     9666560     0
05:00:00 6119744 4858097     0 60252160 54376240   156     9666560     0
06:00:00 6119744 4858289     0 60252160 54375608   156     9666560     0
07:00:00 6119744 4858793     0 60252160 54442424   156     9666560     0
08:00:00 6119744 4858985     0 60252160 54474552   156     9666560     0
08:20:00 6119744 4858169     0 60252160 54377400   156     9666560     0
08:40:01 6119744 4857345     0 60252160 54376880   156     9666560     0
09:00:00 6119744 4859433     0 60252160 54539752   156     9666560     0
09:20:00 6119744 4858633     0 60252160 54410920   156     9666560     0
09:40:00 6127936 5262064     0 60530688 55619816   156     9666560     0
10:00:00 6545728 5823137     0 62996480 58391136   156     9666560     0
10:20:00 6545728 5758997     0 62996480 57907400   156     9666560     0
10:40:00 6734144 6035759     0 64389120 59743064   156    10493952     0
11:00:00 6996288 6394872     0 65437696 60935936   156    10493952     0
Average  6258044 5150556     0 61138340 55609004   156     9763900     0
下表介绍了 -k 选项的输出。
字段名 说明
sml_mem KMA 在小型内存请求池中可用的内存量,以字节为单位。在此池中,小型请求小于 256
字节。
alloc KMA
已从其小型内存请求池向小型内存请求分配的内存量,以字节为单位。
fail 请求少量内存并失败的请求数。
lg_mem KMA 在大型内存请求池中可用的内存量,以字节为单位。在此池中,大型请求介于 512 字节到
4 千字节之间。
alloc KMA
已从其大型内存请求池向大型内存请求分配的内存量,以字节为单位。
fail 请求大量内存并失败的请求数。
ovsz_alloc 为大于 4
千字节的超大型请求分配的内存量。这些请求可通过页面分配器来满足。因此,不存在池。
fail 因请求超大量内存而失败的请求数。
CUUG
更多oracle视频教程请点击:http://crm2.qq.com/page/portalpage/wpa.php?uin=800060152&f=1&ty=1&aty=0&a=&from=6
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息