mbuf プールをモニターするための netstat -m コマンド
ネットワーク・メモリー要求 (mbufs/clusters) の不足や失敗を検出するには、netstat -m コマンドを使用します。
mbuf 統計情報をクリアする (ゼロにする) には、netstat -Zm コマンドを使用します。 これは、テストの実行を開始する際に統計情報をクリアする場合に役立ちます。 以下のフィールドが、netstat -m コマンドに用意されています。
- フィールド名
- 定義
- By size
- バッファー・サイズを表示します。
- inuse
- 使用中の特定サイズのバッファー数を表示します。
- コール
- バッファー・サイズごとの呼び出し回数、または割り当て要求の回数を表示します。
- 失敗
- 使用可能バッファーがないことによる割り当て要求の失敗回数を表示します。
- 遅延
- 特定サイズのバッファーが空で、呼び出し元が M_WAIT フラグを設定したことによって呼び出しが遅延した回数を表示します。
- free
- フリー・リストに存在し、割り当て可能な状態になっている各サイズのバッファー数を表示します。
- hiwat
- フリー・リストに残される最大バッファー数 (システムによって決定される値) を表示します。 この上限を超えたフリー・バッファーは、システムに対してゆっくりと解放されていきます。
- freed
- フリー・カウントが hiwat 制限を超えたためにシステムに対して解放されたバッファーの数を表示します。
failed 呼び出しの数が大きくなるようであってはなりません。 少数でも存在すれば、そのことがトリガーになって、バッファー・プール・サイズの増加に伴い、システムがさらにバッファーを割り当てることになります。 リブート後のシステム開始時には、 各サイズのバッファーの事前定義セットが用意されますが、その後、必要に応じてバッファー数が増加します。
2 つのプロセッサーまたは CPU を搭載したマシンの netstat -m コマンドの例を以下に示します。
# netstat -m
Kernel malloc statistics:
******* CPU 0 *******
By size inuse calls failed delayed free hiwat freed
32 68 693 0 0 60 2320 0
64 55 115 0 0 9 1160 0
128 21 451 0 0 11 580 0
256 1064 5331 0 0 1384 1392 42
512 41 136 0 0 7 145 0
1024 10 231 0 0 6 362 0
2048 2049 4097 0 0 361 362 844
4096 2 8 0 0 435 435 453
8192 2 4 0 0 0 36 0
16384 0 513 0 0 86 87 470
******* CPU 1 *******
By size inuse calls failed delayed free hiwat freed
32 139 710 0 0 117 2320 0
64 53 125 0 0 11 1160 0
128 41 946 0 0 23 580 0
256 62 7703 0 0 1378 1392 120
512 37 109 0 0 11 145 0
1024 21 217 0 0 3 362 0
2048 2 2052 0 0 362 362 843
4096 7 10 0 0 434 435 449
8192 0 4 0 0 1 36 0
16384 0 5023 0 0 87 87 2667
***** Allocations greater than 16384 Bytes *****
By size inuse calls failed delayed free hiwat freed
65536 2 2 0 0 0 4096 0
Streams mblk statistic failures:
0 high priority mblk failures
0 medium priority mblk failures
0 low priority mblk failures