Offloading I/O to Dedicated Cores: An Asymmetric io_uring Back end for Seastar
7 hours ago
- Seastar将I/O处理从应用核心转移到专用网络核心,以释放CPU用于计算工作负载。
- 新的asymmetric_io_uring后端将应用核心组织成组,每组共享一个网络核心,该核心通过每个分片的io_uring实例(使用共享内核工作者)处理所有I/O。
- 移除了快速路径推测性I/O,以确保所有I/O都卸载到网络核心,防止在应用核心上执行同步系统调用。
- NUMA感知分配根据SMT兄弟关系和NUMA局部性分配工作者核心,以最小化缓存一致性开销。
- 缓冲区环被考虑但未实现,原因是与Seastar的缓冲区管理在架构上不兼容。
- 基准测试显示,对于计算密集型工作负载,网络I/O吞吐量有所提升(例如,单个分片提升15%),但在纯I/O负载下,由于内存复制,单个网络核心成为瓶颈。
- 磁盘I/O性能保持不变;硬件是主要瓶颈。
- 非对称后端最适合于计算密集型且伴随高吞吐量网络的应用,而不适用于纯I/O密集型工作负载。
- 该后端已合并到Seastar中,并可通过编译、调优和使用说明进行测试。