内存型键值存储是帮助大型互联网服务实现低延迟访问热门数据的关键组件。最流行的键值存储之一——Memcached,由于 Linux 网络堆栈固有的性能限制,在使用高速网络接口时无法实现高性能。虽然可以使用基于 DPDK 的解决方案绕过 Linux 网络堆栈,但这些方法需要完全重设计软件堆栈,即使客户端负载很低,也会导致高 CPU 利用率。

为了克服这些限制,我们提出了 BMC——Memcached 的内核缓存,可以在标准网络堆栈执行之前处理请求。BMC 缓存的请求被视为 NIC 中断的一部分,这使得性能可以随着服务 NIC 队列的核心数量扩展。为确保安全,BMC 使用 eBPF 实现。尽管受到 eBPF 的安全限制,我们证明了实现复杂缓存服务是可能的。因为 BMC 运行在商用硬件上,不需要修改 Linux 内核或 Memcached 应用程序,因此可以广泛部署在现有系统上。

BMC 优化了 Facebook 等小型请求的处理时间。在这个目标负载上,我们的评估结果显示,与原始的 Memcached 应用程序相比,BMC 的吞吐量提高了高达 18 倍,与使用 SO_REUSEPORT 套接字标志的优化版本的 Memcached 相比,提高了高达 6 倍。此外,我们的结果还表明,BMC 对非目标请求没有可感知的开销,并且不会降低吞吐量。

BMC: 高性能内核缓存,加速 Memcached 性能

原文地址: https://www.cveoy.top/t/topic/mY89 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录