从/ proc / net / sockstat获取网络连接

时间:2015-02-09 15:47:42

标签: linux sockets networking proc

我在/ proc中找到了显示套接字的信息:

$ cat /proc/net/sockstat 
sockets: used 8278
TCP: inuse 1090 orphan 2 tw 18 alloc 1380 mem 851
UDP: inuse 6574
RAW: inuse 1
FRAG: inuse 0 memory 0

你能帮我找一下这些价值观的含义吗?这些值是否足够可靠,或者我需要在其他地方搜索它?

这些方法是否可以在Linux中找到有关TCP / UDP连接的信息?

3 个答案:

答案 0 :(得分:1)

据我了解,/proc/net/sockstat是查找该信息最可靠的地方。我经常自己使用它,并且只需一台服务器来管理1MM的同时连接,这是我能够可靠地统计这些信息的唯一地方。

答案 1 :(得分:1)

<块引用>

你能帮我找出这些值的含义吗?

根据代码 here,值是正在使用的套接字数 (TCP / UDP)、孤立 TCP 套接字数(应用程序没有更多句柄的套接字,它们已经调用了 close())。 TCP tw 我不确定,但是根据结构名称 (tcp_death_row),这些是在不久的将来要被彻底销毁的套接字吗? sockets 表示分配的套接字数(据我了解,考虑不同状态下的 TCP 套接字),mem 是 TCP 套接字分配的页数(内存使用)。

This 文章对此主题进行了一些讨论。

答案 2 :(得分:0)

您可以使用netstat命令,该命令本身使用/proc文件系统,但打印的信息对人类更具可读性。

例如,如果要显示当前的tcp连接,可以发出以下命令:

netstat -t

检查man netstat以了解众多选项。