sar -k コマンドを使用すると、KMA (Kernel Memory Allocator) に関して次の動作が表示されます。
KMA を使用すると、カーネルサブシステムは必要に応じてメモリーを割り当て、解放できます。 最大量のメモリーを静的に割り当てるのではなく、ピークを下回る負荷を要求するのが予想されるため、 KMA はメモリー要求を「小」(256 バイト未満)、「大」(512 バイト 〜 4K バイト)、「サイズ超過」 (4K バイト超) という 3 つのカテゴリに分けます。 また、2 つのメモリープールを管理して、「小」要求と「大」要求を満たします。 「サイズ超過」要求は、システムページアロケータからメモリーを割り当てることで満たされます。
KMA 資源を使用するドライブや STREAMS の作成に使用中のシステムを調査する場合は、sar -k コマンドを使用すると便利です。 それ以外の場合は、このコマンドで提供される情報は不要です。 KMA 資源を使用するが、終了前には特に資源を返さないドライバやモジュールがあると、メモリーのリークが生じることがあります。 メモリーリークが発生すると、KMA によって割り当てられるメモリーは時間が経つにつれて増大します。 したがって、sar -k コマンドの alloc フィールドの値が時間が経つにつれ増える場合は、メモリーリークの可能性があります。 メモリーリークのもう 1 つの兆候は、要求が失敗することです。 この問題が発生した場合は、メモリーリークのために KMA がメモリーを予約したり割り当てたりできなくなっている可能性があります。
メモリーリークが発生した場合は、KMA からメモリーを要求したが返していないドライバや STREAMS がないかどうかをチェックする必要があります。
$ 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 |
次の表に -k オプションからの出力について説明します。
表 24–12 sar -k コマンドからの出力
フィールド名 |
説明 |
---|---|
sml_mem |
KMA が小メモリー要求プール内で使用できるメモリーのバイト数 (小要求は 256 バイト未満) |
alloc |
KMA が小メモリー要求プールから小メモリー要求に割り当てたメモリーのバイト数 |
fail |
小量のメモリーで失敗した要求数 |
lg_mem |
KMA が大メモリー要求プール内で使用できるメモリーのバイト数 (大要求は 512 バイトから 4K バイトまで) |
alloc |
KMA が大メモリー要求プールから大メモリー要求に割り当てたメモリーのバイト数 |
fail |
大メモリーで失敗した要求数 |
ovsz_alloc |
サイズ超過要求 (4K バイトを超える要求) に割り当てられたメモリーの容量。 これらの要求はページアロケータによって満たされる。 このため、プールはない |
fail |
サイズ超過メモリーで失敗した要求数 |
次の例は、sar -k 出力を示します。
$ sar -k SunOS touchstone 5.9 Generic sun4u 03/04/2003 00:00:05 sml_mem alloc fail lg_mem alloc fail ovsz_alloc fail 01:00:03 1761280 1209760 0 4833280 3955104 0 2293760 0 02:00:05 1761280 1209020 0 4833280 3953360 0 2293760 0 03:00:03 1761280 1208712 0 4833280 3972096 0 2293760 0 04:00:03 1761280 1209796 0 4833280 3976432 0 2293760 0 05:00:03 1761280 1207708 0 4833280 3976864 0 2293760 0 06:00:04 1761280 1208112 0 4833280 3977200 0 2293760 0 07:00:04 1761280 1209024 0 4833280 3977200 0 2293760 0 08:00:04 1761280 1208932 0 4833280 4035120 0 2293760 0 08:20:04 1761280 1210480 0 4833280 4035120 0 2293760 0 08:40:04 1761280 1210592 0 4833280 4035968 0 2293760 0 09:00:03 1761280 1212440 0 4833280 4039024 0 2293760 0 09:20:04 1761280 1214388 0 4833280 4043792 0 2293760 0 09:40:04 1761280 1210760 0 4833280 4041744 0 2293760 0 10:00:05 1761280 1208192 0 4833280 4040496 0 2293760 0 10:20:03 1761280 1213404 0 4833280 4046576 0 2293760 0 10:40:02 1761280 1212184 0 4833280 4046576 0 2293760 0 Average 1761280 1210219 0 4833280 4009542 0 2293760 0 |