您当前的位置:首页 > 文章中心 > 技术应用 > 性能调优之PCIe配置
性能调优之PCIe配置
作者:server2008   来源:本站   点击:361   时间:2023-9-18

PCIe用途 

当PCIe 应用于网卡和主机间通信时,网络适配器需要与 CPU 和内存(以及其他模块)进行通信。这意味着为了处理网络流量,应该对通过 PCIe 进行通信的不同设备进行良好配置。将网络适配器连接到 PCIe 时,它会自动协商网络适配器和 CPU 之间支持的最大功能。


PCIe 属性 

任何 PCI 设备都加载了某些属性。其中一些属性对性能至关重要。设备的 PCIe 属性是通过系统和设备能力之间的协商来设置的。这导致两者都可以支持被选择的最高值。下面,您可以找到相关 PCIe 属性的说明、如何验证它们以及它们对性能的影响。 

PCIe 宽度 

PCIe 宽度决定了设备可并行用于通信的 PCIe 通道数。宽度标记为 xA,其中 A 是通道数(例如,x8 表示 8 通道)。具体支持多少通道取决于厂商的设备和它们的型号。为了验证 PCIe 宽度,可以使用命令 lspci。

在本例中,我们在 PCI 04.00.0 地址上安装了 Mellanox 适配器。

# lspci -s 04:00.0 -vvv | grep Width 

LnkCap: Port #0, Speed 8GT/s, Width x8, ASPM not supported, Exit Latency L0s unlimited, L1 unlimited 

LnkSta: Speed 8GT/s, Width x8, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-

如您所见,PCIe 报告了已通信的设备功能(在 LnkCap 下),以及它们的当前状态(在 LnkSta 下),这是实际的 PCIe 设备属性。


PCIe 速度 

确定可能的 PCIe 事务数。速度以 GT/s 为单位,代表“每秒十亿次交易”。与 PCIe 宽度一起确定了最大 PCIe 带宽(速度 * 宽度)。为了验证 PCIe 速度,可以使用命令 lspci。

# lspci -s 04:00.0 -vvv | grep Speed 

LnkCap: Port #0, Speed 8GT/s, Width x8, ASPM not supported, Exit Latency L0s unlimited, L1 unlimited 

LnkSta: Speed 8GT/s, Width x8, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt

与宽度参数类似,设备能力和状态都会被报告。 

PCIe 速度被标识为“代”,其中 2.5GT/s 称为“gen1”,5GT/s 称为“gen2”,8GT/s 称为“gen3”,16GT/s 称为“gen4”. 

注意:除了支持的速度之外,各代之间的主要区别在于数据包的编码开销。对于第 1 代和第 2 代,在 PCIe 上发送的每个数据包都有 20% 的 PCIe 标头开销。这在第 3 代中得到了改进,其中开销减少到 1.5% (2/130)。有关更多详细信息,请参阅下面的实际 PCIe 带宽计算。

PCIe Max Payload Size PCIe Max Payload Size 确定 PCIe 数据包或 PCIe MTU 的最大大小(类似于网络协议)。这意味着较大的 PCIe 事务被分解为 PCIe MTU 大小的数据包。此参数仅由系统设置,取决于芯片组架构(例如 x86_64、Power8、ARM 等)。您可以使用命令 lspci(在 DevCtl 下指定)查看 PCIe Max Payload Size。

lspci -s 04:00.0 -vvv | grep DevCtl: -C 2 

DevCap: MaxPayload 512 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited 

ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ 

DevCtl: Report errors: Correctable- Non-Fatal+ Fatal+ Unsupported- 

RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+ FLReset- 

MaxPayload 256 bytes, MaxReadReq 4096 bytes

PCIe Max Read Request 

PCIe Max Read Request 确定允许的最大 PCIe 读取请求。由于必须为传入响应准备缓冲区,PCIe 设备通常会跟踪待处理的读取请求的数量。PCIe 最大读取请求的大小可能会影响待处理请求的数量(当使用大于 PCIe MTU 的数据获取时)。同样,使用命令 lspci 来查询 Max Read Request 值。


计算 PCIe 带宽限制 

如前所述,PCIe 功能可能会影响网络适配器的性能。最好了解 PCIe 引入的带宽限制。下面是理论计算和几个例子。 

最大可能的 PCIe 带宽是通过乘以 PCIe 宽度和速度来计算的。从这个数字中,我们减少了大约 1Gb/s 的纠错协议和 PCIe 标头开销。开销由 PCIe 编码(有关详细信息,请参阅 PCIe 速度)和 PCIe MTU 确定: 

最大 PCIe 带宽 = 速度 * 宽度 * (1 - 编码) - 1Gb/s。 

例如,具有 x8 宽度的第 3 代 PCIe 设备将被限制为: 最大 PCIe 带宽 = 8G * 8 * (1 - 2/130) - 1G = 64G * 0.985 - 1G = ~62Gb/s。 

另一个示例 - 具有 x16 宽度的第 2 代 PCIe 设备将被限制为:

最大 PCIe 带宽 = 5G * 16 * (1 - 1/5) - 1G = 80G * 0.8 - 1G = ~63Gb/s。 

注意:PCIe 事务包括网络数据包有效负载和标头,因此在计算网络流量的 PCIe 限制时需要考虑它们。 

PCIe Max Read Request 和 Max Payload Size 可能会由于 PCIe 整体增加和相同负载的待处理事务而导致事务速率限制。

 


成都强川科技有限公司 

联系电话:400-028-6620    028-85024766 

​公司地址:成都市武侯区一环路南二段2号新世纪商业中心东楼17楼B座


   
 
上一篇:新华三发布业界首款机架箱式             下一篇: 戴尔存储激发创新动力
友情链接: 四川服务器总代理 | 成都服务器总代理 | 成都戴尔总代理 | 成都戴尔服务器总代理 | 成都联想总代理 | 成都浪潮服务器总代理 |
成都强川科技有限公司 版权所有 Copyright 2011-2024
全国免长途热线:400-028-6620 技术支持:028-85041466 传真:028-85215166
地址:成都市武侯区新世纪电脑城东17楼B座       ICP备案编号:蜀ICP备11026978号-2