知识卡片
distributor如何兼顾保序与均衡
内容
多核处理报文最怕两件事顾此失彼:把同一条流(同一哈希tag)的报文分散到不同核处理,会导致同一连接的报文乱序;但把所有流都焊死到固定核上,又会造成核间负载不均。DPDK的distributor用tag做绑定——记录每个流对应哪个worker,同一流的后续报文优先派给同一个编号最小的worker以维持顺序,但一旦该worker的待处理队列(backlog)满了,也允许把同一流临时分给别的worker。这是”尽量保序”与”负载均衡”之间的务实折中,而非严格二选一。
参考来源
《深入浅出DPDK》第5章《报文转发》