在一些低时延场景下,行业内使用Solarflare网卡会比较多,Solarflare x2522-plus这款网卡目前是主流。在使用过程中需要注意PIO资源的使用,超过会影响应用的网络通讯。
Solarflare x2522的PIO总数是16个,网卡驱动以及onload驱动默认都会占用PIO资源。如果应用程序使用了Tcpdirect功能(ctpio_mode=3),若申请不到PIO资源则会导致应用异常。为了避免该情况的发生,建议网卡驱动和onload的驱动默认不使用PIO,将资源释放出来给到应用程序使用。
1、禁止sfc驱动使用PIO
明确不需要使用onload驱动。可能的场景下做该配置;
(1)修改配置:
# vim /etc/modprobe.d/sfc.conf
options sfc piobuf_size=0
(2)重新加载onload驱动及网络
# onload_tool reload
#### 如果有应用正在使用onload,需要停止应用后再重新加载onload驱动
# systemctl restart network
(3)验证配置结果
# cat /sys/module/sfc/parameters/piobuf_size
0
2、禁止onload驱动使用PIO
仅使用onload的应用场景不需要做该配置,onload驱动允许使用PIO资源;
(1)配置系统参数
# echo "export EF_PIO=0" >> /etc/profile
# source /etc/profile
(2)验证配置结果
# env | grep EF_PIO
EF_PIO=0