31.7. 加速 RFS
加速 RFS 通过添加硬件协助提高接收流评估 (RFS) 的速度。与 RFS 一样,数据包会根据占用数据包的应用程序的位置进行转发。
但是,与传统的 RFS 不同,数据包直接发送到消耗数据的线程到本地的 CPU:
- 执行应用程序的 CPU
- 或与该 CPU 在缓存层次结构中本地的 CPU
只有在满足以下条件时,加速 RFS 才可用:
-
NIC 必须支持加速 RFS。通过导出
ndo_rx_flow_steer()
net_device
函数的卡支持加速 RFS。检查 NIC 的数据表以确保是否支持此功能。 -
需要启用
ntuple
过滤。有关如何启用这些过滤器的详情,请参考启用过滤器。
满足这些条件后,会根据传统 RFS 配置自动减少 CPU 到队列映射。也就是说,基于每个接收队列的驱动程序配置的 IRQ 等级,CPU 到队列映射将减少。有关启用传统 RFS 的更多信息,请参阅启用 Receive Flow Steering。
31.7.1. 启用默认过滤器
需要启用 ntuple
过滤。使用 ethtool -k
命令启用 ntuple
过滤。
流程
显示
ntuple
过滤器的当前状态:# ethtool -k enp1s0 | grep ntuple-filters ntuple-filters: off
启用
ntuple
过滤:# ethtool -k enp1s0 ntuple on
注意
如果输出为 ntuple-filters: off [fixed]
,则会禁止 ntuple
过滤,您无法配置它:
# ethtool -k enp1s0 | grep ntuple-filters
ntuple-filters: off [fixed]
验证步骤
确定是否启用了
ntuple
过滤器:# ethtool -k enp1s0 | grep ntuple-filters ntuple-filters: on
其他资源
-
ethtool(8)
手册页