在网络和硬盘大吞吐量的场景下,可以通过设置pci=pcie_bus_perf选项提高pcie设备的MPS
什么是MPS:PCI 设备之间的报文传输使用的TLP(Translation Layer Protocol),TLP报文中Data部分的大小就是Payload , Payload的最大size是由设备的MPS(Max Payload Size)决定的,所以MPS大的话pcie传输效率高一些。
pci=pcie_bus_perf参数的效果:根据PCIe设备的父总线,将设备MPS设置为允许的最大MPS。同时将MRRS(最大读取请求大小)设置为支持的最大值。
vim /etc/default/grub
在linux一行末尾加上pci=pcie_bus_perf
再更新grub
grub2-mkconfig -o /boot/efi/EFI/*/grub.cfg
重启
查看设置是否生效
cat /proc/cmdline
查看设备最大支持的MPS,一般最大支持256,或者512
lspci -s bus -vvv |grep MaxPayload
还有其他几类参数,配置方法和上图类似:
pcie_bus_tune_off 不配置MPS, 默认使用BIOS的配置
pcie_bus_safe 设置MPS为RC下设备能够支持的大小
pcie_bus_peer2peer 设置每个MPS为128B