通信模组性能调优

通信模组性能调优

  • 1 背景
  • 2 高通平台软硬加速
    • 2.1 NSS
    • 2.2 SFE
    • 2.3 PPE
  • 3 CPU 负载均衡设置
    • 3.1 启用内核 RPS&RFS 功能
    • 3.2 网卡队列修改建议
    • 3.3 调整负载前后的 CPU 使用对比
    • 3.4 网卡中断均衡
      • 3.4.1 netdev_max_backlog
      • 3.4.2 中断绑核
    • 3.5 CPU性能模式
    • 3.6 热管理
    • 3.7 调整接收发送缓存
  • 4 示例
    • 4.1 现状
    • 4.2 调整措施

1 背景

通信模组会与Host搭配组成CPE/ODU/IDU等整机形态使用。在整机吞吐率测试中,经常会各种原因导致的速率不达标问题,下面是一些速率优化建议。

2 高通平台软硬加速

高通IPQ系列上位机,支持NSS\SFE\PPE等加速。不同型号支持的加速方式也是不同的,下面是几种加速方式的介绍。

在这里插入图片描述
在这里插入图片描述

2.1 NSS

高通NSS(Networking Subsystem)是高通路由器平台中用于网络加速和数据处理的子系统,主要功能包括报文分类和硬件加速。
通过分类器(classifiers)判断哪些报文需要加速,符合条件的报文直接在NSS中以L2转发到目的端口,绕过Linux协议栈,降低CPU负载并提升传输效率。
通过NPU(Network Processing Unit)实现硬件级加速,与Linux协议栈并行处理数据包,显著提升网络吞吐量。 ‌
在这里插入图片描述
目前在IPQ807x、IPQ60XX和IPQ50xx上支持。

2.2 SFE

SFE(Shortcut Forwarding Engine)是高通推出的网络加速技术,通过优化数据转发路径减少延迟并提升传输效率。早期版本与多线、流控等功能存在兼容性问题,后续通过代码优化实现了与高恪固件的适配,支持多拨、智能流控等特性。开启SFE后,设备性能可提升2-3倍(如K2P机型可达600Mbps),但部分功能(如无线限速、固定流控)可能受限。 ‌

在这里插入图片描述
目前在IPQ95xx和IPQ50xx上支持。

2.3 PPE

PPE(Packet Processing Engine)是一个用于转发流量的硬件加速块。
在这里插入图片描述目前在IPQ95xx和IPQ53xx上支持。

3 CPU 负载均衡设置

3.1 启用内核 RPS&RFS 功能

RPS 全称是 Receive Packet Steering,在 2.6.35 进入 Linux 内核。这个 patch 采用软件模拟的方式,实现了多队列网卡所提供的功能,分散了在多 CPU 系统上数据接收时的负载,把软中断分到各个 CPU 处理,而不需要硬件支持,大大提高了网络性能。

RFS 全称是 Receive Flow Steering,它是用来配合 RPS 补丁使用的,是 RPS 补丁的扩展补丁,它把接收的数据包送达应用所在的 CPU 上,提高 cache 的命中率。

使用以下命令使能此功能,把 2 个网卡的负载分别调到 CPU3 和 CPU2 上:拆分 QMAP 包成单个IP 包 跑在 CPU3 上;提交 IP 包到内核协议栈 跑在 CPU2 上。PCIe 中断保持不变,承载在 CPU0 上。

echo 32768 > /proc/sys/net/core/rps_sock_flow_entries 
echo 8 > /sys/class/net/pcie_mhi0/queues/rx-0/rps_cpus
echo 4096 > /sys/class/net/pcie_mhi0/queues/rx-0/rps_flow_cnt 
echo 4 > /sys/class/net/pcie_mhi0.1/queues/rx-0/rps_cpus
echo 4096 > /sys/class/net/pcie_mhi0.1/queues/rx-0/rps_flow_cnt

3.2 网卡队列修改建议

如果PHY 支持多队列处理,建议将每个网卡平均分布到各核心,以便减小最终用户实际使用中的 CPU 负载情况。

如从图中可以看出当前只使用了 eth3、pcie_mhi0、pcie_mhi0.1 三个网卡。

在这里插入图片描述
eth3 RX 队列负载平衡调整

echo 0 > /sys/class/net/eth3/queues/rx-0/rps_cpus
echo 4096 > /sys/class/net/eth3/queues/rx-0/rps_flow_cnt 
echo 2 > /sys/class/net/eth3/queues/rx-1/rps_cpus
echo 4096 > /sys/class/net/eth3/queues/rx-1/rps_flow_cnt 
echo 4 > /sys/class/net/eth3/queues/rx-2/rps_cpus
echo 4096 > /sys/class/net/eth3/queues/rx-3/rps_flow_cnt 
echo 8 > /sys/class/net/eth3/queues/rx-3/rps_cpus

eth3 TX 队列负载平衡调整

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

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

相关文章

消息队列kafka的事务特性

kafka的java客户端producer也支持事务消息吗?具体是啥事务呢? 是的,Kafka的Java客户端Producer确实支持事务消息。让我详细解释Kafka事务的概念和使用方法。 Kafka事务的主要特点: Producer Transactions:确保多个消息…

用Python实现自动化的Web测试(Selenium)

Python作为数据科学和自动化领域的主流语言,在网络爬虫开发中占据着重要地位。本文将全面介绍Python爬虫的技术栈、实现方法和最佳实践。爬虫技术概述网络爬虫(Web Crawler)是一种按照特定规则自动抓取互联网信息的程序。它可以自动化地浏览网…

「Memene 摸鱼日报 2025.9.17」上海张江人工智能创新小镇正式启动,华为 DCP 技术获网络顶会奖项

theme: condensed-night-purple 以下内容包括「人工智能生成内容」 上海张江人工智能创新小镇正式启动,华为 DCP 技术获网络顶会奖项 👏在昨天(2025.9.16),AI领域有这些内容可能值得你关注: 上海张江人工智…

Vehiclehal的VehicleService.cpp

VehicleService.cpp 是 Android Automotive OS 中负责车辆相关功能的核心服务组件,主要处理车身信息获取及状态设置接口,通过 HIDL(Hardware Interface Definition Language)接口与系统框架层交互。 ‌12核心功能VehicleService.c…

《LINUX系统编程》笔记p11

公共资源也称为共享资源,是指可以被多个并发进程或线程共同访问(读取或写入)的系统资源。临界资源是公共资源的一个子集。特指那些一次仅允许一个进程或线程访问的公共资源。如果一个进程正在使用它,其他试图访问该资源的进程必须…

spring-kafka消费异常处理

默认的消费异常处理 默认情况下,如果程序没有显式做任何的异常处理,spring-kafka会提供一个默认的DefaultErrorHandler, 它会使用FixedBackOff做重试,会不间断的连续重试最多9次,也就是说一个消息最多会被消费10次。如果重试次数耗…

leecode73 矩阵置零

我的思路 这个题目不难,就是一句话,遍历这个矩阵的时候,当遇到0的时候就把该行该列改为0,同时为了不影响后续的遍历,我们可以将这个遍历和修改分为两个数组。使用mn的辅助空间 class Solution {public void setZeroe…

Spring Boot 与前端文件上传跨域问题:Multipart、CORS 与网关配置

前言在前后端分离架构下,文件上传是一个常见功能。但在 Spring Boot 项目中,我们经常会遇到前端调用接口上传文件时出现 跨域问题,表现为:浏览器控制台报错:Access-Control-Allow-Origin 缺失或不匹配。使用 FormData …

快速解决云服务器的数据库PhpMyAdmin登录问题

打开PhpMyAdmin数据库管理器登录页面账号密码就是你的用户名(如YiXun)和密码注意:root账户的密码,点击下面的“root密码”即能看到或修改PhpMyAdmin无法打开如果打不开:在数据库,点击PHPMyAdmin&#xff0c…

vite+vue3中使用FFmpeg@0.12.15实现视频编辑功能,不依赖SharedArrayBuffer!!!

FFmpeg0.12.15完全不依赖SharedArrayBuffer!!!强烈推荐使用 本文章主要是在vitevue3项目中使用FFmpeg,只展示了如何在项目中引入和基础的使用 更多详细参数可参照 ffmpeg官网https://ffmpeg.org/ 一、安装FFmpeg 可通过npm直接安装 npm install ffmpeg/core0.12.10…

构网型5MW中压储能变流升压一体机技术方案

1 构网型储能背景概述1.1 新型电力系统亟需构网支撑众所周知,新型电力系统具有两高特征:高比例新能源大规模并网、高比例电力电子大范围接入。近年来风光装机占比越来越高,而传统火电装机占比越来越低,并在2023年首次降至50%以下…

SRE 系列(七)| 从技术架构到团队组织

目录SRE落地与组织架构实践技术架构与组织架构的匹配技术架构示例运维职责分工技术保障体系SRE 多角色团队总结SRE落地与组织架构实践 在落地 SRE 时,很多团队最关心的问题之一就是组织架构:我们究竟需要怎样的团队形态,才能支撑微服务和分…

香港期权市场的主要参与者有哪些?

本文主要介绍香港期权市场的主要参与者有哪些?香港期权市场作为全球重要的金融衍生品市场,其参与者结构呈现多元化、专业化的特征,主要涵盖以下核心群体。香港期权市场的主要参与者有哪些?1. 机构投资者(主导力量&…

搜维尔科技:全身可穿戴Teslasuit动捕服的功能,自立式FES装置

功能性电刺激 (FES) 设备广泛应用于康复和医疗实践。其底层技术利用低能量电脉冲,在中风、脊髓损伤、多发性硬化症、脑瘫等各种疾病患者中人工产生身体运动。一般来说,FES系统可以分为三类:开环、有限状态控制和闭环方法。这三种方法描述了 F…

【深度学习新浪潮】MoE是什么技术?

混合专家模型(Mixture of Experts,MoE)是大模型时代提升计算效率与模型能力的核心技术之一。其核心思想是将复杂任务分解为多个子任务,通过动态路由机制激活特定专家网络处理输入数据,从而在保持模型容量的同时大幅降低计算成本。以下是技术细节与实际应用的深度解析: 一…

Java进阶教程,全面剖析Java多线程编程,实现Callable接口实现多线程,笔记05

Java进阶教程,全面剖析Java多线程编程,实现Callable接口实现多线程,笔记05 参考资料 多线程&JUC-05-多线程的第三种实现方式一、实现Callable接口实现多线程 二、三种方式对比 优点缺点继承Thread类编程比较简单,可以直接使…

轨道交通绝缘监测—轨道交通安全的隐形防线

轨道交通绝缘监测作为保障行车安全的核心环节,正面临多重技术与环境挑战。复杂运营环境是首要痛点,隧道内高湿度(月均湿度达95%)会增大钢轨表面电导率,雾气中的盐分更会加速扣件绝缘性能下降,导致过渡电阻骤…

tar-符号连接(软连接)

1.符号连接是什么符号链接(symbolic link,也叫软链接)本质上是一个 指向路径的特殊文件。例如:ln -s /etc/passwd passwd_link这会创建一个叫 passwd_link 的文件,但它本身不存放 /etc/passwd 的内容,而是存…

ffmpeg切割音频

ffmpeg切割音频 我希望对指定音频切割,按照开始时间,结束时间,切割成新文件,自动保存,非常好用 step1: from pydub import AudioSegment import os# 配置FFmpeg路径(确保路径正确) ffmpeg_path …

Python 批量处理:Markdown 与 HTML 格式相互转换

文章目录引言与同类工具的优势对比Python 将 Markdown 转换为 HTMLPython 将 HTML 转换为 Markdown批量转换与自动化处理引言 在多平台内容分发与管理的场景中,文档格式转换已成为内容生态系统中的关键环节。Markdown 作为轻量级标记语言,以其语法简洁、…