关键信息:
LnkCap: Port #0, Speed 16GT/s, Width x16, ASPM not supported
LnkSta: Speed 8GT/s (downgraded), Width x4 (downgraded)
具体说明:
设备能力 (LnkCap - Link Capability):
当前状态 (LnkSta - Link Status):
(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
配置: i7-8700K 是双通道 (Dual Channel) 内存控制器,而测试报告中的 Xeon Platinum 是 8 通道。
L3 缓存: 只有 12MB。Intel 的 DDIO 技术会尝试把网卡数据直接送入 L3 缓存。
风险: 100Gbps 的数据流非常巨大,12MB L3 瞬间就会被填满(Cache Thrashing)。
一旦发生 Cache Miss,数据就要去读写内存。双通道 DDR4 的带宽在 100G 高负载下会非常吃紧,可能导致 64字节小包性能不如服务器平台。
i7-8700K 只支持 AVX2,不支持 AVX-512。
关闭 Hyper-Threading (超线程): 对于 i7 这种只有 12MB L3 的 CPU,两个线程争抢 L3 会导致 100G 性能剧烈波动。建议关掉超线程,只用 6 个物理核。
CPU 频率: 锁死在最高倍频(4.7GHz),关闭 C-States (C1E, C3, C6) 和 SpeedStep,防止 CPU 降频。
你的内存只有 16GB (可用 10GB)。 必须 分配至少 4-8 个 1GB 的 Hugepages。
不要用 2MB 的页,在 100G 速率下 TLB Miss 会很高。
你的 CPU 0-5 。
将 0留给 OS。
将 1,2,3,4,5 隔离出来给 DPDK。
GRUB: isolcpus=1-5
本文章使用limfx的vscode插件快速发布