[QNX] BSP 网络性能优化:调优io-pkt和ClockPeriod提升网速

0 概要

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

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 <stdio.h>
#include <sys/neutrino.h>
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) < 0) {printf("QNX: failed to call ClockPeriod: %s\n");}
}

使用iperf压测网络带宽显示前几组数据都是600+M/S,接着在板卡中执行demo程序,发现iperf压测后的速度降到了500+M/S
在这里插入图片描述

再次尝试 设置tick改回1ms

#include <stdio.h>
#include <sys/neutrino.h>
int main() {/* 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) < 0) {printf("QNX: failed to call ClockPeriod: %s\n");}
}

测试后发现,前几组数据是500+M/S,执行完demo后的数据恢复到了600M/S。
在这里插入图片描述

建议:

  • 在实际应用中,可以根据具体情况调整io-pktClockPeriod的参数值。
  • 可以使用一些网络性能分析工具,例如iperf,来测试网络性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/698275.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTML的使用(上)

文章目录 前言一、HTML是什么&#xff1f;二、使用内容 &#xff08;1&#xff09;换行标记<br>&#xff08;2&#xff09;加粗标记<b> </b>&#xff08;3&#xff09;段落标记<p> </p>&#xff08;4&#xff09;标题标记<h1>~<h6> …

韵搜坊(全栈)-- 前后端初始化

文章目录 前端初始化后端初始化 前端初始化 使用ant design of vue 组件库 官网快速上手&#xff1a;https://www.antdv.com/docs/vue/getting-started-cn 安装脚手架工具 进入cmd $ npm install -g vue/cli # OR $ yarn global add vue/cli创建一个项目 $ vue create ant…

运维基础(二)- 钉钉的使用

一、钉钉的介绍&#xff08;来自百度百科&#xff09; 免费沟通和协同的多端平台 帮助中国企业通过系统化的解决方案&#xff08;微应用&#xff09;&#xff0c;全方位提升中国企业沟通和协同效率。 钉钉&#xff08;Ding Talk&#xff09; 是阿里巴巴打造的企业级智能移动…

安利一个轻量级流程引擎compileflow

写在文章开头 今日推荐一个比较轻量级的工作流引擎——即阿里的compileflow&#xff0c;这款流程引擎算是笔者接触过流程引擎中相对轻量级、且性能和集成扩展表现都比较良好的框架&#xff0c;本文就会从几种常见的使用场景以及源码分析的角度介绍这款工具。 Hi&#xff0c;我…

邓闲小——生存、生活、生命|真北写作

人生有三个层次∶生存、生活、生命。 生存就是做必须做的事。生存的模式是邓&#xff0c;是交易&#xff0c;是买卖。别人需要的东西&#xff0c;你生产出来&#xff0c;卖给他。哪怕这个东西没啥用&#xff0c;也可以卖&#xff0c;情绪也可以卖。你需要的东西&#xff0c;你花…

社交媒体数据恢复:派派

派派是一款非常流行的社交软件&#xff0c;但是如果你在使用派派的过程中&#xff0c;不小心删除了一些重要的聊天记录或者其他数据&#xff0c;那么该怎么办呢&#xff1f;下面是一些简单的步骤&#xff0c;可以帮助你进行数据恢复。 1. 首先打开派派&#xff0c;并进入需要恢…

【论文复刻】堆叠柱状图+饼图

复刻了一下这篇论文里的fig2c&#xff1a;Impacts of COVID-19 and fiscal stimuli on global emissions and the Paris Agreement | Nature Climate Change 效果图&#xff1a; 主要步骤&#xff1a; 1. 数据准备&#xff1a;随机赋值 2. 图像绘制&#xff1a;绘制堆叠柱状…

无列名注入

在进行sql注入时&#xff0c;一般都是使用 information_schema 库来获取表名与列名&#xff0c;因此有一种场景是传入参数时会将 information_schema 过滤 在这种情况下&#xff0c;由于 information_schema 无法使用&#xff0c;我们无法获取表名与列名。 表名获取方式 Inn…

RabbitMQ--死信队列

目录 一、死信队列介绍 1.死信 2.死信的来源 2.1 TTL 2.2 死信的来源 3.死信队列 4.死信队列的用途 二、死信队列的实现 1.导入依赖 pom.xml 2.application.properties 3.配置类 4.生产者 5.业务消费者&#xff08;正常消费者&#xff09; 6.死信队列消费者 一、…

Linux服务升级:OpenResty 升级1.25.3.1版本

目录 一、实验 1.环境 2.Windows 安装 Termius 3.Linux 部署 OpenResty 4.Linux 使用 OpenResty 实现内容展示&#xff08;content_by_lua&#xff09; 5.Linux 使用 OpenResty 实现重定向 &#xff08;rewrite_by_lua&#xff09; 6.Linux 使用 OpenResty 实现请求体&…

设置 kafka offset 消费者位移

文章目录 1.重设kafka消费者位移2.示例2.1 通过 offset 位置2.2 通过时间2.3 设置到最早 1.重设kafka消费者位移 维度策略含义位移Earliest把位移调整到当前最早位移处位移Latest把位移调整到当前最新位移处位移Current把位移调整到当前最新提交位移处位移Specified-Offset把位…

AI地名故事:长洲村

长洲村&#xff0c;位于广州市黄埔区长洲街道&#xff0c;坐落在广州东部的长洲岛、洪圣沙、白兔沙、大吉沙。这个地方自古以来就是扼守广州海上大门的咽喉要塞&#xff0c;地理位置十分重要。 关于长洲村的由来&#xff0c;要追溯到南宋时期。南宋景定三年&#xff08;1262年…