该平台运行一个基于消息队列的应用程序:一个虚拟机作为生产者,一个虚拟机作为消息队列服务器,最后一个虚拟机作为消费者。我的问题是:当来宾虚拟机变得繁忙时,消息队列服务器虚拟机可能会偶尔发送大小为2k、4k或5k的数据包。它超过了NIC的MTU值1500!据我所知,Linux IP协议栈应该在发送之前将小于MTU大小的IP帧进行剪切。为什么此虚拟机在繁忙时发送大型数据包?server] V
[w4: celery
当我注意到抖动时,我正在测试一个WebSocket连接;一些TCP数据包被延迟了。所以我开始敲击目的地。当我这么做的时候,TCP数据包就不再被延迟了,很奇怪。我不再拍打了,我又开始发抖了。在我看来,NIC和IP堆栈之间似乎有一些缓冲,缓冲区在低容量时没有被适当地刷新Ring parameters for wlp3s0:
Pre-set如果有的话,更小的队列大小会导致较少的延迟,但会导致丢包,而我没有看到这一点。