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

标签 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上的文件和文档并没有帮助。我希望这里的人知道内核计数器实际在计数什么,或者可以指出正确的方向。

最佳答案

what is kernel 1071 actually counting?


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

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

关于linux - 在ss -s中,内核计数器实际计数的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59471133/

相关文章:

c++ - 低内存的内存管理 : finding and tracking duplicates of random function return values

linux - 在 linux 中运行另一种语言的程序

linux - 这个 bash 脚本发生了什么?

linux - (FUSE) 文件系统何时检查访问权限?

c - C 中的 IPPROTO_TCP IP_TOS 的 setsockopt 失败

c# - 通过套接字C#的远程MS PowerPoint幻灯片

python-3.x - 为什么关闭与服务器的连接?

c++ - 删除自动 int 变量

iphone - 使用 VM 跟踪器进行 iOS 分析。脏内存和常驻内存导致内存警告,怎么办?

linux - 每次显示时从两种模式之间获取文本