我在/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连接信息的其他方法吗?
你能帮我找到这些价值观的含义吗?
根据这里的代码,这些值是正在使用的套接字数(TCP/UDP)和孤立TCP套接字数(应用程序没有更多句柄的套接字,它们已经调用了close()
)。TCP tw
我不确定,但根据结构名称(TCP_death_row),这些套接字将在不久的将来被彻底销毁吗?sockets
表示分配的套接字的数量(根据我的理解,考虑处于不同状态的TCP套接字),mem
是TCP套接字分配的页面数量(内存使用情况)。
本文围绕这个主题进行了一些讨论。
据我所知,/proc/net/sockstat
是查找该信息最可靠的地方。我经常自己使用它,并且只有一台服务器来管理1MM的同时连接,这是我唯一可以可靠地统计这些信息的地方。
您可以使用netstat
命令,该命令本身利用了/proc
文件系统,但打印的信息更易于阅读。
例如,如果你想显示当前的tcp连接,你可以发出以下命令:
netstat -t
查看man netstat
了解众多选项。