我有一个问题,与大小为 1500 字节的数据包相比,为什么我的机器的吞吐量对于小数据包(即 64 字节)非常糟糕?
我有一个 GIGABIT NIC 卡,能够以 80MB/s 的速度传输 1500 字节大小的数据包,但在 64 字节大小的数据包的情况下,我几乎无法分辨出 25MB/s 左右。
我知道在 1500 字节数据包的情况下,我需要发送大约 80k PPS 才能达到线路速率,而对于 64 字节,它大约需要 140 万 PPS。
但是为什么小数据包的吞吐量会有很大的变化呢?
编辑:我在linux中使用内存映射将数据包从用户空间传输到内核空间,然后直接写入网络驱动程序进行传输。我发现我的 CPU 使用率在 64 字节和 1500 字节数据包之间进行比较时非常少且相同。