Blog:
NXP iMX8 和 iMX6 Arm 处理器网络性能对比
简介
NXP iMX8 已经正式发布,相较于之前 NXP i.MX 系列的主力产品 iMX6,其性能有了大幅提升,本文就针对网络接口对 NXP iMX8 和iMX6 两款 Arm 处理器进行对比测试。
本文演示所使用的 Arm 平台来自 Toradex 基于NXP iMX8 SoC 的 Apalis iMX8 Arm 核心板和基于 NXP iMX6Q SoC 的 Apalis iMX6 Arm 核心板。
准备
Apalis iMX8QM Arm 核心版配合 Apalis Evaluation Board 载板,Apalis iMX8QM 安装 Toradex V3.0b2 Linux demo image,同时连接调试串口UART1(载板X29)到开发主机方便调试。更多关于 Apalis iMX8 配合Apalis Evaluation Board 载板的说明请参考 Datasheet 和开发上手指南。
Apalis iMX6Q Arm 核心版配合 Apalis Evaluation Board 载板,Apalis iMX6Q 安装Toradex V2.8 Linux demo image,同时连接调试串口 UART1(载板X29)到开发主机方便调试。更多关于 Apalis iMX6 配合 Apalis Evaluation Board 载板的说明请参考 Datasheet 和开发上手指南。
Ubuntu linux PC 主机, 用于分别和 Apalis iMX8、Apalis iMX6 进行收发测试。
测试工具软件使用 iperf3 工具,Toradex Linux demo image 里面已经默认集成,Ubuntu 系统(这里以18.04 为例)要通过 apt 命令来安装 iperf3
$ sudo apt update
$ sudo apt install iperf3
网络连接拓扑为 Apalis iMX8QM、Apalis iMX6Q 以及Ubuntu PC 都通过千兆有线网络连接到同一个局域网。
TCP网络传输性能测试对比
Apalis iMX6Q/Apalis iMX8QM 作为 Server 端接收,Ubuntu PC 作为 Client 端发送测试
Apalis iMX6Q/Apalis iMX8QM Server端运行下面命令
$ iperf3 -s
- Apalis iMX6Q
$ iperf3 -c [IP of Apalis iMX6Q] -t 60 -i 10 -w 300K
…
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-60.00 sec 4.01 GBytes 574 Mbits/sec 1 sender
[ 4] 0.00-60.00 sec 4.01 GBytes 574 Mbits/sec receiver
- Apalis iMX8QM
$ iperf3 -c [IP of Apalis iMX8QM] -t 60 -i 10
…
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-60.00 sec 6.52 GBytes 934 Mbits/sec 0 sender
[ 4] 0.00-60.00 sec 6.52 GBytes 934 Mbits/sec receiver
Apalis iMX6Q/Apalis iMX8QM 作为 Client 端发送,Ubuntu PC 作为 Sever 端接收测试
Ubuntu PC server 端运行下面命令
$ iperf3 -s
Apalis iMX6Q Client 端连接测试
root@apalis-imx6:~# iperf3 -c [IP of Ubuntu PC] -t 60 -i 10
…
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-60.00 sec 2.84 GBytes 406 Mbits/sec 0 sender
[ 5] 0.00-60.00 sec 2.84 GBytes 406 Mbits/sec receiver
Apalis iMX8QM Client端连接测试
root@apalis-imx8:~# iperf3 -c [IP of Ubuntu PC] -t 60 -i 10
…
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-60.00 sec 6.39 GBytes 915 Mbits/sec 0 sender
[ 5] 0.00-60.00 sec 6.39 GBytes 915 Mbits/sec receiver
测试结果汇总
项目 |
TCP发送测试 |
TCP接收测试 |
Apalis iMX6Q |
406 Mb/s |
574 Mb/s |
Apalis iMX8QM |
915 Mb/s |
934 Mb/s |
UDP网络传输性能测试对比
Apalis iMX6Q/Apalis iMX8QM 作为 Server 端接收,Ubuntu PC 作为 Client端发送测试
Apalis iMX6Q/Apalis iMX8QM Server端运行下面命令
$ iperf3 -s
- Apalis iMX6Q
100M 带宽测试
$ iperf3 -c [IP of Apalis iMX6Q] -u -b 100M -t 60 -i 10
…
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.00-60.00 sec 714 MBytes 99.9 Mbits/sec 0.110 ms 0/91424 (0%)
400M 带宽测试
$ iperf3 -c [IP of Apalis iMX6Q] -u -b 400M -t 60 -i 10
…
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.00-60.00 sec 2.79 GBytes 400 Mbits/sec 0.098 ms 4374/365993 (1.2%)
1000M 带宽测试
$ iperf3 -c [IP of Apalis iMX6Q] -u -b 1000M -t 60 -i 10
…
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.00-60.00 sec 2.98 GBytes 426 Mbits/sec 0.167 ms 2304/390206 (0.59%)
- Apalis iMX8QM
100M 带宽测试
$ iperf3 -c [IP of Apalis iMX8QM] -u -b 100M -t 60 -i 10
…
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.00-60.00 sec 714 MBytes 99.9 Mbits/sec 0.078 ms 84/91416 (0.092%)
400M 带宽测试
$ iperf3 -c [IP of Apalis iMX8QM] -u -b 400M -t 60 -i 10
…
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.00-60.00 sec 2.79 GBytes 400 Mbits/sec 0.092 ms 121/366076 (0.033%)
1000M 带宽测试
$ iperf3 -c [IP of Apalis iMX8QM] -u -b 1000M -t 60 -i 10
…
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.00-60.00 sec 6.63 GBytes 949 Mbits/sec 0.064 ms 284/868752 (0.033%)
Apalis iMX6Q/Apalis iMX8QM作为Client端发送,Ubuntu PC作为Sever端接收测试
Ubuntu PC server端运行下面命令
$ iperf3 -s
- Apalis iMX6Q Client 端连接测试
100M 带宽测试
root@apalis-imx6:~# iperf3 -c [IP of Ubuntu PC] -u -b 100M -t 60 -i 10
…
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-60.00 sec 715 MBytes 100 Mbits/sec 0.000 ms 0/517952 (0%) sender
[ 5] 0.00-60.00 sec 715 MBytes 100 Mbits/sec 0.005 ms 0/517952 (0%) receiver
400M 带宽测试
root@apalis-imx6:~# iperf3 -c [IP of Ubuntu PC] -u -b 400M -t 60 -i 10
…
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-60.00 sec 1.91 GBytes 273 Mbits/sec 0.000 ms 0/1413705 (0%) sender
[ 5] 0.00-60.00 sec 1.91 GBytes 273 Mbits/sec 0.021 ms 0/1413705 (0%) receiver
1000M 带宽测试
root@apalis-imx6:~# iperf3 -c [IP of Ubuntu PC] -u -b 1000M -t 60 -i 10
…
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-60.00 sec 1.92 GBytes 274 Mbits/sec 0.000 ms 0/1421514 (0%) sender
[ 5] 0.00-60.00 sec 1.92 GBytes 274 Mbits/sec 0.057 ms 0/1421509 (0%) receiver
- Apalis iMX8QM Client端连接测试
100M 带宽测试
root@apalis-imx8:~# iperf3 -c [IP of Ubuntu PC] -u -b 100M -t 60 -i 10
…
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-60.00 sec 715 MBytes 100 Mbits/sec 0.000 ms 0/517950 (0%) sender
[ 5] 0.00-60.00 sec 715 MBytes 100 Mbits/sec 0.035 ms 0/517950 (0%) receiver
400M 带宽测试
root@apalis-imx8:~# iperf3 -c 10.20.1.126 -u -b 400M -t 60 -i 1
…
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-60.00 sec 2.79 GBytes 400 Mbits/sec 0.000 ms 0/2071798 (0%) sender
[ 5] 0.00-60.00 sec 2.79 GBytes 400 Mbits/sec 0.026 ms 68/2071798 (0.0033%) receiver
1000M 带宽测试
root@apalis-imx8:~# iperf3 -c 10.20.1.126 -u -b 1000M -t 60 -i 10
…
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-60.00 sec 4.71 GBytes 674 Mbits/sec 0.000 ms 0/3489592 (0%) sender
[ 5] 0.00-60.00 sec 4.71 GBytes 674 Mbits/sec 0.030 ms 103/3489586 (0.003%) receiver
测试结果汇总
|
UDP发送测试 |
UDP接收测试 |
||||
100M带宽 |
400M带宽 |
1000M带宽 |
100M带宽 |
400M带宽 |
1000M带宽 |
|
Apalis iMX6Q |
100 Mb/s |
273 Mb/s |
274 Mb/s |
99.9 Mb/s |
400 Mb/s * |
426 Mb/s * |
Apalis iMX8QM |
100 Mb/s |
400 Mb/s |
674 Mb/s |
99.9 Mb/s |
400 Mb/s |
949 Mb/s |
* 注意此时丢包率已经到1%左右
总结
本文对比测试了 NXP iMX6 和 NXP iMX8 处理器的网络性能,对于 iMX6,由于这个 Eratta 的限制,400Mb/s 左右的性能也就把符合文档的描述,iMX8 则在大多数情况下能够接近千兆带宽。