系统管理指南:高级管理

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

  1. 使用 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 -k)

下面是 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

因请求超大量内存而失败的请求数。