在ss -s中,内核计数器实际计数的是什么?

时间:2019-12-24 16:01:32

标签: linux sockets memory-management linux-kernel ss

在对OEL 7服务器(3.10.0-1062.9.1.el7.x86_64)上的问题进行故障排除时,我运行了命令

sudo ss -s

哪个给了我输出:

Total: 601 (kernel 1071)
TCP:   8 (estab 2, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 0

Transport Total     IP        IPv6
        1071     -         -
RAW        2         0         2
UDP        6         4         2
TCP        8         5         3
INET       16        9         7
FRAG       0         0         0

ss -a | wc -l时返回了225条条目。

这引出我一个问题,kernel 1071实际上是什么? 浏览各种手册页没有提供答案。 使用 strace ,我可以看到 ss 的读取内容:

/proc/net/sockstat
/proc/net/sockstat6
/proc/net/snmp
/proc/slabinfo

浏览这些文件和文档,看起来值似乎来自 /proc/slabinfo
通过 /proc/slabinfo 进行1071的抓取又得到了一个条目:

sock_inode_cache    1071   1071    640   51    8 : tunables    0    0    0 : slabdata     21     21      0

浏览sock_inode_cache上的文件和文档到目前为止没有帮助。我希望这里的人知道内核计数器实际在计数什么,或者可以指出正确的方向。

1 个答案:

答案 0 :(得分:1)

  

内核1071实际计数了什么?

sock_inode_cache表示Linux内核Slab的统计信息。它显示了那里有多少个套接字inode(活动对象)。

struct socket_alloc对应于sock_inode_cache的平板缓存,并包含struct socketstruct inode,因此它已连接到VFS