ntn*_*tnt 8 networking api tcp proc
给定一个 linux TCP 套接字的 inode(通过 获得/proc/<pid>/fd
),有没有更快的方法来查找我可以从/proc/net/tcp
这个套接字中获得的信息?
我编写了一个故障排除工具,它监视进程并打印有关 IO 操作的实时信息(strace
-type 信息收集到更高级别的抽象中并以不那么原始的方式呈现),但是在负载很重的网络服务器上,我发现它需要时间查找套接字信息(例如外部地址/端口)是令人望而却步的,因为它的大小非常大/proc/net/tcp
(我目前正在查看的服务器上大约有 2MB)。
我可以通过缓存来管理这个,但这必然会引入延迟,让我怀疑“API”的荒谬性,它需要读取和解析 2MB 的 ASCII 文本才能找到有关套接字的信息。
这是libnetfilter_conntrack的链接。您必须使用支持直接从库调用 C 函数的语言重新编写程序。但我认为这个库将拥有您所需的钩子,可以比解析该文本文件更快地获取您想要的数据。
这就是iptstate
程序用来完成其任务的内容。
归档时间: |
|
查看次数: |
6154 次 |
最近记录: |