实测952Mbps!四路千兆网PCIe拓展方案,国产工业级!

测试环境说明

运行系统:Debian-11.8

评估板:TL3588-EVM(RK3588J)

模块:PCIe扩展2/4路千兆网口模块

方案:无锡沐创N500L-AM2C-DD、N500L-AM4C-QD

测试工具:iperf3

创龙科技已基于瑞芯微RK3588J、RK3568J处理器实现了PCIe拓展多路千兆网口方案,以下主要介绍基于瑞芯微RK3588J(硬件平台:创龙科技TL3588-EVM评估板)测试。

备注:基于瑞芯微RK3562J处理器的PCIe拓展多路千兆网口方案适配亦在规划中,如有需求,欢迎咨询。

测试数据汇总

基于瑞芯微RK3588J(硬件平台:创龙科技TL3588-EVM评估板)测试结果如下表所示。

表1

RK3588J核心板典型应用场景

RK3588J核心板可应用于工业计算机、运动控制器、医疗内窥镜、超声影像系统、车载环视系统、目标识别跟踪等领域。

图1

PCIe扩展多路千兆网口方案介绍

方案基于无锡沐创N500L-AM2C-DD、N500L-AM4C-QD千兆网络控制器国产芯片,工作温度:-40℃ ~ +85℃,可支持国产化认证,支持2/4路满带宽同时传输,支持PCIe 2.0 1/2/4Lane模式。

图2

硬件连接

请通过PCIe转千兆以太网卡模块与评估板PCIe RC接口连接,并使用网线将PCIe转千兆以太网卡模块与PC机的PCIe转千兆以太网卡模块相连接,硬件连接如下图所示。

图3 2路千兆网口模块

图4 4路千兆网口模块

PCIe扩展多路千兆网口案例演示

案例测试

本案例采用无锡沐创N500L-AM2C-DD(双网口)、N500L-AM4C-QD(四网口)模块进行测试。下面以N500L-AM4C-QD为例进行演示,具体测试步骤请参考我司用户手册资料。

(1)TCP带宽测试

在评估板文件系统执行如下命令,新建一个脚本,用于并行测试网口。

Target#vi tcp_speed.sh

图5

新增内容如下:

#!/bin/sh

iperf3 -c 192.168.77.11 > /dev/null &

iperf3 -c 192.168.78.11 > /dev/null &

iperf3 -c 192.168.79.11 > /dev/null &

iperf3 -c 192.168.80.11 > /dev/null &

图6

修改完成后,保存退出。执行如下命令赋予脚本可执行权限。

Target#chmod a+x tcp_speed.sh

图7

执行如下命令,运行脚本,开始并行测试。

备注:由于采用并行测试,调试串口终端不便于显示测试结果,因此在PC机Ubuntu的四个终端查看测试结果。

Target#./tcp_speed.sh

图8

图9

(2)UDP带宽测试

在评估板文件系统执行如下命令,新建一个脚本,用于并行测试网口。

Target#vi udp_speed.sh

图10

新增内容如下:

#!/bin/sh

iperf3 -c 192.168.77.11 -u -b 1000M > /dev/null &

iperf3 -c 192.168.78.11 -u -b 1000M > /dev/null &

iperf3 -c 192.168.79.11 -u -b 1000M > /dev/null &

iperf3 -c 192.168.80.11 -u -b 1000M > /dev/null &

图11

修改完成后,保存退出。执行如下命令赋予脚本可执行权限。

Target#chmod a+x udp_speed.sh

图12

执行如下命令,运行脚本,开始并行测试。

Target#./udp_speed.sh

图13

图14

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Spring Boot中的`ThreadPoolTaskExecutor`是一个线程池管理工具,可以用来执行异步任务,包括批量处理数据。当需要处理大量数据,特别是涉及到数据库的插入操作时,使用线程池可以提高性能,因为它可以并发地执行多个插入操作,减少阻塞。 批量插入百万数据时,你可以按照以下步骤操作: 1. 配置ThreadPoolTaskExecutor:首先,在Spring Boot应用的配置类中(如`ApplicationConfig`或`MyConfig`),定义一个`ThreadPoolTaskExecutor`,设置核心线程数、最大线程数和队列大小等参数。例如: ```java @Bean public ThreadPoolTaskExecutor taskExecutor() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); executor.setCorePoolSize(10); // 核心线程数 executor.setMaxPoolSize(20); // 最大线程数 executor.setQueueCapacity(1000); // 队列大小 executor.setThreadNamePrefix("data-import-"); executor.initialize(); return executor; } ``` 2. 创建批量操作类:创建一个包含`Runnable`接口的类,用于封装批量插入操作。比如,如果你的数据源是JPA,可以创建一个`JpaInsertBatch`类: ```java public class JpaInsertBatch implements Runnable { private List<YourEntity> entities; // 你需要插入的数据列表 @Override public void run() { entityManager.persistAll(entities); } } ``` 3. 批量提交任务:使用`ThreadPoolTaskExecutor`来执行批量插入任务,循环提交你的数据列表到线程池: ```java @Autowired private ThreadPoolTaskExecutor taskExecutor; List<YourEntity> largeDataList = ... // 获取你的百万数据 for (int i = 0; i < largeDataList.size(); i += batchSize) { int endIndex = Math.min(i + batchSize, largeDataList.size()); taskExecutor.execute(new JpaInsertBatch(largeDataList.subList(i, endIndex))); } ``` 4. 评估性能:实测时,记录开始和结束时间,计算整个过程的耗时,并根据实际情况调整线程池参数,以达到最佳性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tronlong创龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值