netstat 捕获网络快照的速度有多快?
How quickly does netstat capture network snapshot?
我有一台机器每秒(或更少)有大量连接和断开连接。
我需要在某一时刻捕获网络快照。但我看到 netstat 需要一些时间才能 return 结果到那时很多套接字将重新连接。
netstat 实际上是如何工作的?它能多快获取网络快照?
netstat 从 /proc/net/tcp|udp|raw 文件中收集信息,您可以快速捕获这些文件并 parse/re-format 稍后
strace 清楚地显示相同
$ strace -e open -f netstat -an 2>&1 |grep -v ENOENT |grep '^open("/proc'
open("/proc/net/tcp", O_RDONLY) = 3
open("/proc/net/tcp6", O_RDONLY) = 3
open("/proc/net/udp", O_RDONLY) = 3
open("/proc/net/raw", O_RDONLY) = 3
open("/proc/net/raw6", O_RDONLY) = 3
open("/proc/net/unix", O_RDONLY) = 3
我有一台机器每秒(或更少)有大量连接和断开连接。 我需要在某一时刻捕获网络快照。但我看到 netstat 需要一些时间才能 return 结果到那时很多套接字将重新连接。
netstat 实际上是如何工作的?它能多快获取网络快照?
netstat 从 /proc/net/tcp|udp|raw 文件中收集信息,您可以快速捕获这些文件并 parse/re-format 稍后
strace 清楚地显示相同
$ strace -e open -f netstat -an 2>&1 |grep -v ENOENT |grep '^open("/proc'
open("/proc/net/tcp", O_RDONLY) = 3
open("/proc/net/tcp6", O_RDONLY) = 3
open("/proc/net/udp", O_RDONLY) = 3
open("/proc/net/raw", O_RDONLY) = 3
open("/proc/net/raw6", O_RDONLY) = 3
open("/proc/net/unix", O_RDONLY) = 3