我正在尝试调查代码的性能问题,该代码通过TCP套接字将日志发布到中央服务器。一种假设是发布者在套接字级别承受背压。有没有办法从操作系统获取背压度量标准?
我确定答案是特定于操作系统的。就我而言,我使用的是Ubuntu 14.04和默认的Canonical提供的3.13内核。
我认为我可以通过缩放已发布的消息量并测量等待套接字写入完成所花费的相对时间来检测背压。但是似乎这可能是一个足够普遍的问题,无法找到一种通用的方法来对其进行度量。 (不过,在我的Google搜索中,我发现的只是有关连接过程中阻塞的讨论以及有关反压工作原理的解释。)
最佳答案
用tcpdump
查看窗口大小:https://en.wikipedia.org/wiki/TCP_tuning#Window_size
如果另一端跟不上流量,则应该关闭。