Sar:totsck代表什么?

我正在寻找“sar -n SOCK”输出的totsck列的解释

09:44:06 PM totsck tcpsck udpsck rawsck ip-frag tcp-tw 09:44:09 PM 580 18 5 0 0 1 09:44:10 PM 580 18 5 0 0 0 09:44:11 PM 580 18 5 0 0 0 Average: 580 18 5 0 0 1 

这显然不是tcp / udp / raw套接字的总和。 我唯一的解释是,它的sockets加上

  sysctl fs.file-nr 

但在我的testing盒上

 fs.file-nr = 5632 0 803168 

精确的解释非常感谢。

谢谢

编辑2:所以显然totsck相当于

 cat /proc/net/sockstat 

这就导致了这个问题。 我发现这个,但最后只build议询问编写特定内核代码的人。

编辑(对于域套接字帐户):

 [root@fedora16 fs]# netstat --protocol unix| wc -l 413 [root@fedora16 fs]# sar -n SOCK 1 1 Linux 3.3.1-5.fc16.x86_64 (fedora16) 06/21/2012 _x86_64_ (4 CPU) 10:03:25 PM totsck tcpsck udpsck rawsck ip-frag tcp-tw 10:03:26 PM 598 6 5 0 0 3 Average: 598 6 5 0 0 3 

还有一些UNIX域套接字(STREAM和DGRAM),这些套接字在系统使用的套接字总数中占有一席之地。 UNIX域套接字被进程引用为文件系统中的inode。 还有很多东西仍然使用UNIX域套接字来实现各种目的,所以sarselect了这个。 检查netstat -a输出以查看系统上打开了多less个UNIX域套接字。

fs.file-nr是最大文件句柄的数量,重要的是与你在sar输出中看到的无关。

编辑:请考虑sar基本上读取/proc/net/sockstat并作出一个平均数,或报告历史值。 看来/proc/net/sockstat从两个地方获取数据(内核源代码为2.6.27),位置是net/socket.c行:2324和net/ipv4/proc.c行54以及后面的总数数字来自第一地点,其余的来自第二地点。 通过net结构还会显示哪些套接字被计入/计入并打印到proc文件系统中。

  79 * @SOCK_STREAM: stream (connection) socket 80 * @SOCK_DGRAM: datagram (conn.less) socket> 81 * @SOCK_RAW: raw socket 82 * @SOCK_RDM: reliably-delivered message> 83 * @SOCK_SEQPACKET: sequential packet socket 84 * @SOCK_DCCP: Datagram Congestion Control Protocol socket