知识卡片

小包场景下协议开销占大头

专业/工作 · 1109.b

内容

把DMA收发包全过程拆开看,除了包内容本身的读写,还夹杂大量描述符的读、写、回写操作——每一次收发都要经过CPU填充描述符、网卡读描述符、网卡写包内容、网卡回写完成状态等好几轮PCIe事务。以64字节小包为例,实测每转发一个包平均要消耗约168字节的PCIe upstream带宽,真正的包内容只占一小部分,剩下的都是描述符读写和对齐开销吃掉的——这解释了小包转发的理论上限为何远低于大包,瓶颈从来不是”传不动这么多数据”,而是”每个包背的协议和描述符包袱太重”。

参考来源

《深入浅出DPDK》第6章《PCIe与包处理I/O》