我可以监控Linux套接字缓冲区的完整性吗?

use*_*193 10 sockets linux tcp

我的工作是支持一家科技公司.我正在尝试在现场解决我们的一个应用程序的实例,并需要监视TCP套接字缓冲区的完整性.

我知道如果我可以访问源代码,我可以使用ioctl和SIOCOUTQ在任何时间点查询套接字缓冲区的完整性.

但我没有.

所以我的问题是,有没有办法从应用程序外部查看套接字缓冲区的完整性?

Google引导我进入/ proc/net/tcp,但我并不是100%确定tx_queue列是我正在寻找的.是吗?

如果是这样,是否足够"实时"我可以编写一个perl脚本来不断轮询它以获得套接字缓冲区利用率的视图?

Ben*_*ens 5

Proc和实时一样好,当你在/ proc下得到一个文件的内容它实际上是在内核中构建输出而不是从文件中读取或类似的东西

正如Jon所说,无法读取缓冲区内容,但是如果您只想知道自己是否接近队列限制,那么tx_queue就是正确的查找位置.(或者rx_queue当然取决于延迟发生的位置)

现在我不知道你正在看什么应用程序,或者它做了什么,但是在bufferbloat的标题下有一些有趣的读数,关于如何更好地减少队列长度并让tcp更能响应地处理速率变化是一个更好的解决方案而不是监控队列(并重新启动应用程序或?)