使用大数据包时性能下降
Degrading performance when using large packets
我一直在测试 f-stack,当数据包大小很小时,f-stack 表现非常好,比如 64 ~ 1024 字节。但是,当数据包大小增加到某个点时。我注意到它比原来的 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 性能?
MTU是最大的过渡单元,一般是1500,所以理论上TCP包大小限制在64K,但是以太网MTU大小限制了。请参阅此以进行深入讨论:https://www.lifewire.com/definition-of-mtu-817948。
简而言之,是的,你是对的,你做了非常好的和有效的测试。干得好!
要提高性能,您必须增加 MTU。这就是答案。然而,这并不总是可能的。
我一直在测试 f-stack,当数据包大小很小时,f-stack 表现非常好,比如 64 ~ 1024 字节。但是,当数据包大小增加到某个点时。我注意到它比原来的 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 性能?
MTU是最大的过渡单元,一般是1500,所以理论上TCP包大小限制在64K,但是以太网MTU大小限制了。请参阅此以进行深入讨论:https://www.lifewire.com/definition-of-mtu-817948。 简而言之,是的,你是对的,你做了非常好的和有效的测试。干得好! 要提高性能,您必须增加 MTU。这就是答案。然而,这并不总是可能的。