dd硬件分析

硬件性能瓶颈分析

1. PCIe 带宽瓶颈(最严重的问题)

关键信息:

LnkCap: Port #0, Speed 16GT/s, Width x16, ASPM not supported
LnkSta: Speed 8GT/s (downgraded), Width x4 (downgraded)

具体说明:

设备能力 (LnkCap - Link Capability):

  • Speed 16GT/s= 设备支持 PCIe 4.0
  • Width x16= 支持 x16 通道宽度

当前状态 (LnkSta - Link Status):

  • Speed 8GT/s= 当前运行在 PCIe 3.0
  • Width x4= 当前运行在 x4 通道宽度

(downgraded)​ = 已降级(从 PCIe 4.0 x16 降级到 PCIe 3.0 x4)

PCIe 版本	通道数	单向带宽	换算公式	单向带宽 (Gbps)	双向总带宽 (Gbps)
PCIe 4.0	x16	32.0 GB/s	32.0 × 8	256 Gbps	512 Gbps
PCIe 3.0	x4	3.94 GB/s	3.94 × 8	31.5 Gbps	63 Gbps

2. 内存通道与 DDIO (L3 Cache)

配置: i7-8700K 是双通道 (Dual Channel) 内存控制器,而测试报告中的 Xeon Platinum 是 8 通道。

L3 缓存: 只有 12MB。Intel 的 DDIO 技术会尝试把网卡数据直接送入 L3 缓存。

风险: 100Gbps 的数据流非常巨大,12MB L3 瞬间就会被填满(Cache Thrashing)。

一旦发生 Cache Miss,数据就要去读写内存。双通道 DDR4 的带宽在 100G 高负载下会非常吃紧,可能导致 64字节小包性能不如服务器平台。

3. AVX-512 缺失

i7-8700K 只支持 AVX2,不支持 AVX-512。

尝试操作

BIOS 设置 :

关闭 Hyper-Threading (超线程): 对于 i7 这种只有 12MB L3 的 CPU,两个线程争抢 L3 会导致 100G 性能剧烈波动。建议关掉超线程,只用 6 个物理核。

CPU 频率: 锁死在最高倍频(4.7GHz),关闭 C-States (C1E, C3, C6) 和 SpeedStep,防止 CPU 降频。

Hugepages 分配:

你的内存只有 16GB (可用 10GB)。 必须 分配至少 4-8 个 1GB 的 Hugepages。

不要用 2MB 的页,在 100G 速率下 TLB Miss 会很高。

核心隔离 (Core Isolation):

你的 CPU 0-5 。

将 0留给 OS。

将 1,2,3,4,5 隔离出来给 DPDK。

GRUB: isolcpus=1-5


本文章使用limfx的vscode插件快速发布