引言
Intel新的SKYLAKE微处理架构自15年发布至今,已经相对成熟可以进入商用阶段,最近很多供货商也都在积极推广;公司之前用的主要都是Sandy bridge架构,18年据说也要停产了,所以需要考虑升级相关事宜。从供货商那边选了两款样机,准备详细测试下网络性能,是否有针对之前架构有性能提升,及提升效能能到多少。
本文主要记录下测试方法,以及测试过程中遇到的问题和解决步骤,具体的测试对比结果只在内部开放,请谅解。
理论知识
Intel Skylake是英特尔第六代微处理器架构,采用14纳米制程,是Intel Haswell微架构及其制程改进版Intel Broadwell微架构的继任者, 提供更高的CPU和GPU性能并有效减少电源消耗。
主要特性包括:
- 14纳米制程,6th Gen processor
- 同时支持DDR3L和DDR4-SDRAM两种内存规格,最高支持64GB;
- PCIE支持3.0,速度最高支持8GT/s;
- 去掉了Haswell引入的FIVR,使用分离的PCH,DMI3.0
测试拓扑及环境准备
项目 | 描述 |
---|---|
操作系统 | linux,内核2.6.X (影响不大) |
CPU | Intel® Core™ i7-6700 CPU @ 3.40GHz |
内存 | 32GB |
网卡芯片 | intel x710,4口10G |
dpdk版本 | dpdk-16.04 |
测试程序 | l2fwd,l3fwd |
测试套件 | Spirent RFC 2544套件 |
使用dpdk sample程序前需要做一些初始化动作,加载对应的module、驱动,配置对应的大页内存等,写了个初始化脚本如下:
#!/bin/bash
mount -t hugetlbfs nodev /mnt/huge
#set hugepage memory
echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
#add kernel module
modprobe uio
insmod /root/dpdk-16.04/x86_64-native-linuxapp-gcc/kmod/igb_uio.ko
#down interfaces to disable routes
#ifconfig eth0 down
#display netcard driver before bind
/root/dpdk-16.04/tools/dpdk_nic_bind.py -s
#bind driver
/root/dpdk-16.04/tools/dpdk_nic_bind.py -b igb_uio 0000:01:00.0
/root/dpdk-16.04/tools/dpdk_nic_bind.py -b igb_uio 0000:01:00.1
/root/dpdk-16.04/tools/dpdk_nic_bind.py -b igb_uio 0000:01:00.2
/root/dpdk-16.04/tools/dpdk_nic_bind.py -b igb_uio 0000:01:00.3
#display netcard driver after bind
/root/dpdk-16.04/tools/dpdk_nic_bind.py -s
具体的测试拓扑如下:
测试过程及问题解决
由于dpdk的sample运行时需要手动绑定端口和CPU核的关系,所以在运行前最好能了解当前的核分布情况:
root>python cpu_layout.py
==========