[QNX] BSP 网络性能优化:调优io

您所在的位置:网站首页 网络系统性能 [QNX] BSP 网络性能优化:调优io

[QNX] BSP 网络性能优化:调优io

#[QNX] BSP 网络性能优化:调优io| 来源: 网络整理| 查看: 265

0 概要

本文介绍如何在QNX系统上优化网络性能,主要通过调整io-pkt和ClockPeriod参数来实现。通过优化,网络吞吐量可以得到显著提升。

1 优化方法 1.1 调整io-pkt的mclbytes参数:

io-pkt是QNX系统中常用的网络协议栈,其mclbytes参数指定了网络协议栈中单个数据包的最大大小。默认情况下,mclbytes的值为2k(约2048字节),这对于一些网络应用来说可能不够用。

将mclbytes的值增大到64k(约65536字节),可以使每个数据包携带更多的数据,从而提高网络传输效率。实测表明,将mclbytes的值从2k增大到64k,可以使TCP吞吐量提高约10%,UDP吞吐量提高约20%。 经过如下修改后速度有所提高

io-pkt-v6-hc -p tcpip mclbytes=65536

tcp压测由800+M/S提高到873M/S,UDP由600+M/S提高到842M/S

1.2 合理设置ClockPeriod:

https://www.qnx.com/developers/docs/7.1/#com.qnx.doc.neutrino.lib_ref/topic/c/clockperiod.html ClockPeriod用于设置QNX系统时钟的间隔,对系统的定时器精度和性能有影响。在一些情况下,为了提高系统的定时器精度,可能需要设置较小的ClockPeriod值。但是,这可能会对网络性能产生负面影响。 原因: 设置较小的 ClockPeriod 值会导致系统定时器频繁地触发中断,可能会影响系统的整体性能,包括网络性能。这是因为系统中断会引入额外的处理开销,包括上下文切换和中断处理程序的执行,这些都会占用 CPU 资源和内存带宽,并可能导致网络数据包处理的延迟增加。

实测表明,将ClockPeriod的值从0.1ms改回1ms,可以使网络吞吐量提高约20%。

具体测试方法如下,参考qnx ClockPeriod使用方法 在这里插入图片描述 写一个小demo,编译后放到板卡里面运行 设置tick改回0.1ms

#include #include int main() { /* set the clock period to 10us */ struct_clockperiod new period; struct _clockperiod period; new period.fract = 0; new period.nsec = 10000; if (ClockPeriod(CLOCK REALTIME, &new period, &period, 0) /* set the clock period to 10us */ struct_clockperiod new period; struct _clockperiod period; new period.fract = 0; new period.nsec = 100000; if (ClockPeriod(CLOCK REALTIME, &new period, &period, 0)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3