在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
上的文件和文档并没有帮助。我希望这里的人知道内核计数器实际在计数什么,或者可以指出正确的方向。
内核1071实际计数了什么?
sock_inode_cache
表示Linux内核Slab统计信息。它显示了那里有多少个套接字inode(活动对象)。
[struct socket_alloc
对应于struct socket_alloc
平板缓存,并包含sock_inode_cache
和struct socket
,因此它已连接到struct inode
。