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

时间:2012-08-21 03:36:06

标签: linux sockets tcp

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

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

但我没有。

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

谷歌把我带到/ proc / net / tcp,但我不是100%确定tx_queue列是我正在寻找的。是吗?

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

1 个答案:

答案 0 :(得分:5)

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

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

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