本文没有原理性的东西,就我遇到的一个小问题做一下记录,供大家参考。
DPDK 的性能测试有很多种方法,这里我使用的是通过源码编译出来的 testpmd 程序。
我遇到的问题有以下几点:
- 参与测试的两台机器硬件配置完全相同,BIOS 版本相同,内核版本基本相同,测试程序的各种配置完全相同,但其中一台机器的性能比另外一台差很多,差距在 50% 以上;
- testpmd 中看到的收包 pps 和 bps 数值对不上,比如,包大小均为 64 字节,testpmd 给出的 pps 是 5582583,那么对应的 bps 应该是 2858282496,而 testpmd 给出的 bps 是 9318213000,两相比较,差值很大;
- 发送端使用 pktgen 将数据包大小设置为 400 字节后,接收端全部丢包;
上述 3 个问题让人感到很困惑。虽然硬件正常、使用方法正确,但测试结果却有问题。我也没有分析出原因,最后直接将之前构建时生成的所有文件全部删除了,然后重新构建,于是问题就解决了。从这来看,可能是之前来回在同一个目录下多次构建不同版本的 DPDK 而导致出现了问题。具体原因不好分析,如果大家在使用 DPDK 源码进行性能测试时,遇到类似的奇怪问题,可以考虑重新构建 DPDK。