我们系统地研究了时间和空间流量局部性对commodity servers equipped with high-speed network interfaces。我们的研究结果表明
(1)各种广泛部署的应用程序的性能,即使是最轻微的缺乏流量局部性,也会大大降低
(2)来自我们组织的流量trace显示了糟糕的流量局部性,因为网络协议、驱动程序和底层交换/路由结构在时间上分散了数据包(降低了定位)。
为了解决这些问题,我们建立了Reframer,这是一个软件解决方案,可以自由地延迟数据包,并重新排序,以增加流量locality。
How Much Does Order Matter?
我们将数据包排序的影响分解为三类:Network Stack Effects(§2.2),Software Switching Effects(§2.3),以及more advanced NF effects(§2.4)
我们通过在Linux网络工作栈和基于DPDK的无状态和有状态NF在系统软件栈的不同层次上进行实验,探讨了网络数据的空间定位的影响。
这项研究的共同点是,数据包排序大大增加了服务器内存层次(主要是CPU缓存)的利用率,这反过来又导致了关键性能指标的大幅改善,如延迟、吞吐量和CPU利用率。
Network Stack Effects
我们表明,即使在使用复杂的TCP加速时,缺乏流量局部性也会大大降低CPU的利用率
今天的高速网络应用的性能高度依赖于接收数据包的空间locality,因为这影响到缓存丢失率和每个数据包的CPU指令数量。
根据图1a,我们观察到,没有LRO(Large Receive Offload)加速但数据包空间定位良好(即SLF=16)的系统比有LRO但数据包空间定位差(即SLF<5)的系统表现更好,这使得处理有序的数据包流是有益的。
Software Switching Effects
Packet Ordering大大有利于OVS的缓存方案
More Advanced NF Effects
better utilization of core-specific caches is the key for increasing the NFs’ performance and ordering packets minimizes cache misses.
Packets Order in Real-world Traffic
我们的分析表明,属于一个流量的数据包有60%以上是与其他流量的数据包交错在一起的。
此外,新的拥塞控制机制主张对数据包进行计步,以对抗 "缓冲区膨胀",即尽可能保持路由器缓冲区内的队列占用率。
即使是传统的TCP拥塞控制机制[29]的内置自锁功能,其本质上也是将数据包分散在不同的时间段,以避免链路拥挤,这对缓存优化的高速网络通信是有害的
The Reframer Design
很简单,其实就是先buffer一段时间,然后buffer时间够长/buffer数量够多,触发batch的sending。