eBPF总体框架
XDP技术框架
内核协议栈消耗大量cpu资源
基于eBPF的kernel memory cache【KMC】
用Kernel memory cache加速redis数据库
与TCP socket交互
全景视图
性能对比
eBPF 是一项革命性技术,它能在内核中运行沙箱程序,来运行用户态编写的代码。基于现有的(而 非增加新的)抽象层来打造更加智能、 功能更加丰富的基础设施软件,而不会增加系统的复杂度, 也不会牺牲执行效率和安全性。
XDP(eXpress Data Path)是一个linux内核数据包处理组件,该组件在网卡驱动中直接对收到的报文执行 BPF程序,然后根据BPF程序的返回值对报文执行不同的操作。BPF程序执行数据包解析、表查找、创建/ 管理有状态过滤器、封装/解封数据包等处理。
大量的overhead消耗在内核协议栈以及系统调用上。
1、get命令,cache中命中,直接回复client端
2、set命令,更新cache,然后送到协议栈处理
3、get命令,cache中miss,从redis server中查找,回复client端
理想情况下,redis数据库上吞吐提升至少337%, redis数据库上get命令平均时延减少84%。比直接上DPDK效果更优。