通过 netstat -m 命令监视 mbuf 池

可使用 netstat -m 命令检测网络内存 (mbuf/cluster) 请求的不足或故障。

可使用 netstat -Zm 命令清空(即清零)mbuf 统计信息。 在运行测试以从原始统计信息集合开始时,这是很有帮助的。 netstat -m 命令提供了下列字段:
字段名
definition
By size
显示缓冲区的大小。
inuse
显示正在使用的具有特定大小的缓冲区数。
调用
显示每种大小的缓冲区的调用或分配请求数。
失败
显示有多少分配请求因为无缓冲区可用而失败。
已延迟
显示当缓冲区大小为空并由调用程序设置了 M_WAIT 标志时延迟的调用数。
可用
显示处于空闲列表中可以进行分配的每种大小的缓冲区数。
hiwat
显示由系统确定的可以保留在空闲列表中的最大缓冲区数。 超出此限制的任何空闲缓冲区会渐渐释放回系统中。
freed
显示当空闲计数超过 hiwat 限制时已释放回系统中的缓冲区数。

不应该看到大量的 failed 调用。 当缓冲池大小增加时,可能会有少数几个触发系统分配更多缓冲区的失败调用出现。 每种大小都有一组预定义的缓冲区,系统在每次引导后都从这些缓冲区开始,可以按需要增加缓冲区数。

下面是从双处理器或 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