2

我一直在测试 f-stack,当数据包大小很小(如 64 ~ 1024 字节)时,f-stack 的性能非常好。但是,当数据包大小增加到某个点时。我注意到它比原来的 TCP 轮询更糟糕。

我一直在使用 f-stack 实现的客户端和服务器 pingpong 测试延迟和吞吐量。

我怀疑当前 NIC 的 MTU 速度与某些事情有关,因为当我在下面输入这样的内容时,我得到了这个:

ifconfig| grep MTU 
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
UP BROADCAST MULTICAST  MTU:1500  Metric:1        
UP BROADCAST MULTICAST  MTU:1500  Metric:1        
UP LOOPBACK RUNNING  MTU:65536  Metric:1          

这是延迟的结果图: 延迟结果图

如您所见,当数据包大小超过 1500 时,f-stack 性能会下降。

这是吞吐量的结果图: 吞吐量结果图

有没有办法通过大数据包来提高 f-stack 的性能?

4

1 回答 1

1

MTU是最大的转换单元,一般是1500,所以理论上TCP包大小限制在64K,但是以太网MTU大小有限制。有关详细讨论,请参阅此内容:https ://www.lifewire.com/definition-of-mtu-817948 。简而言之,是的,你是对的,你做了非常好的和有效的测试。干得好!要提高性能,您必须增加 MTU。这就是答案。然而,这并不总是可能的。

于 2018-01-04T19:44:38.727 回答