TCP RPC 的可扩展内核内调度(OSDI 2026)

原题:Rakaia: Scalable In-Kernel Scheduling for TCP-Based RPCs

一句话总结:Rakaia在TCP receive path最早位置解析message boundary并work-conserving分发,向userspace隐藏stream/I/O-thread/queue;throughput-under-SLO相对KCM最高5×,gRPC-Go/C++最高1.56×/2.69×。

问题与动机

POSIX TCP只暴露bytes,RPC framework须I/O thread重组message再交worker,既有单connection内HOL,也有connection-to-core imbalance与context-switch overhead。

关键观察 / 隐含假设

  • kernel TCP receive已看到完整byte ordering,是最早恢复RPC boundary的位置。
  • message-level scheduler能跨connections分配ready RPC而不等慢消息。
  • protocol framing可安全在kernel解析,且TLS需kTLS配合。

核心方法

Linux module在receive path增量parse configured RPC framing,形成message descriptors并直接调度到available worker;message API替代userspace stream plumbing。支持kTLS和现有TCP stack,gRPC adapter保留application semantics。

实验与结果

  • 设置:多connection microbenchmarks、gRPC-Go/C++、Silo TPC-C/OpenTelemetry,对比KCM与stock gRPC,以throughput-under-SLO/tail latency为指标(§5)。
  • 相对KCM最高5×,gRPC-Go 1.56×、C++ 2.69×;跨connection counts消除HOL。

论断—证据表

论断证据边界置信度
kernel message scheduling减少HOL§5TCP RPC framing
real apps收益Silo/OTel所测protocols

批判性分析

论证链条

将message semantics下沉与HOL/context switch根因一致,多个framework结果支持。

假设压力测试

复杂/动态 framing、encrypted userspace TLS或malicious length会增加kernel attack surface;慢handler仍会占worker。

实验可信度

micro到applications完整,但kernel module维护、安全审计和多协议覆盖有限。

局限与后续工作

  • eBPF/verified parser、QUIC与多tenant isolation。
  • malformed input fuzzing与production tail。

相关