如何快速排查 Wi-Fi 的 TPUT 问题?

1. 如何排查 Wi-Fi TPUT 问题

  • 掌握每个 Wi-Fi 协议下的 Wi-Fi TPUT 的计算方法
    • 一文让你轻松理解WLAN物理层速率计算方式_wifi速率计算公式-CSDN博客
  • 配查 CPU 的资源占用率:interrupt、CPU loading
    • Linux/Android 系统使用 mpstat 工具
      • 具体工具的使用方法,请自行查询,很简答!
    • 协议栈的调优
  • 统计 Wi-Fi 报文的 MCS 值、丢包率、空间流个数
    • 每家芯片厂商的获取方式有所差异
  • 确定测试环境
    • 环境嘈杂度
    • 天线角度
  • 抓取 Wi-Fi driver/FW log
    • 每个芯片厂家的方法不同,这里不具体列举,在第二章节以 Qualcomm 的芯片为例,提供一个参考示例。
  • 抓取空口 Wi-Fi Sniffer
    • 确认带宽、GI、空间流、信号强度、调制解调(Wi-Fi 7支持了4k,速率对应MCS 13)等符合预期;
    • 排除 UDP/TCP 差异,尝试先测试 UDP 性能,因为 UDP 是无连接型的,性能会比 TCP 好;
    • 切换信道
    • 调整聚合包长度
  • 确定天线 OTA 性能、传导性能
    • 这里就是和发射功率、接收灵敏度相关,涉及到射频、天线等硬件性能指标;

2. Debugging

2.1 How to get txrx status on Qualcomm Wi-Fi platform?

cnss_diag_lite -f -c > /dev/null & // 抓取 Wi-Fi driver/FW log
iwpriv wlan0 getConfig  // 通过命令行的方式,获取相关信息
抓取Wi-Fi Sniffer log,使用Wi-Fi sniffer设备
使用Open的加密方式,连接DUT
iwpriv wlan0 txrx_stats 20 0 - Reset Host Stats
iperf3跑流一段时间
Host stats
iwpriv wlan0 txrx_stats 21 0 - Rx Rate Stats
iwpriv wlan0 txrx_stats 22 0 - Tx Rate Stats
iwpriv wlan0 txrx_stats 23 0 - Tx Stats
iwpriv wlan0 txrx_stats 24 0 - Rx Stats
iwpriv wlan0 txrx_stats 25 0 - AST Stats
iwpriv wlan0 txrx_stats 26 0 - Head/Tail Pointer Ring Stats
iwpriv wlan0 txrx_stats 24 0 - Monitor Mode Stats
Firmware stats
iwpriv wlan0 txrx_stats 1 0 - Pdev Tx Stats
iwpriv wlan0 txrx_stats 2 0 - Pdev Rx Stats
iwpriv wlan0 txrx_stats 3 0 - Pdev Tx HW Queue Stats
iwpriv wlan0 txrx_stats 4 0 - Pdev Tx HW Scheduler Stats
iwpriv wlan0 txrx_stats 5 0 - Pdev Error Stats
iwpriv wlan0 txrx_stats 6 0 - TQM Stats
iwpriv wlan0 txrx_stats 7 0 - TQM_CMDQ Stats
iwpriv wlan0 txrx_stats 8 0 - Tx_DE_CMN thread Stats
iwpriv wlan0 txrx_stats 9 0 - Tx rate stats
iwpriv wlan0 txrx_stats 10 0 - Rx rate stats
iwpriv wlan0 txrx_stats 11 0 -Peer stats
iwpriv wlan0 txrx_stats 12 0 - Tx Self Gen Stats
iwpriv wlan0 txrx_stats 13 0 - Tx MU Queue Stats
iwpriv wlan0 txrx_stats 15 0 - SRNG Info Stats
iwpriv wlan0 txrx_stats 16 0 - SFM Info stats
iwpriv wlan0 txrx_stats 17 0 - TX_MU_MIMO_SCHED_INFO Stats
iwpriv wlan0 txrx_stats 18 0 - PEER_LIST STATS

2.2 How to get memory status on Qualcomm Wi-Fi platform?

cnss_diag_lite -f -c > /dev/null &
iwpriv wlan0 txrx_stats 29 0
Examples
root@imx8qxpmek:~# iwpriv wlan0 txrx_stats 29 0
[iwpriv][0x5cf3b590][14:07:27.945234]wlan: [3622:IH:DP] AST Table:
[iwpriv][0x5cf3b5b8][14:07:27.945275]wlan: [3622:IH:DP] MEC Stats:
[iwpriv][0x5cf3b5c1][14:07:27.945284]wlan: [3622:IH:DP]    Entries Added   = 0
[iwpriv][0x5cf3b5ca][14:07:27.945293]wlan: [3622:IH:DP]    Entries Deleted = 0
[iwpriv][0x5cf3b5d3][14:07:27.945302]wlan: [3622:IH:DP] Dumping Peer Table  Stats:
[soft_i][0x5cf3b5e4][14:07:27.945319]wlan: [0:IH:DP]    peer_mac_addr = ae:92:b4:9e:c6:71 nawds_enabled = 0 bss_peer = 0 wds_enabled = 0 tx_cap_enabled = 0 rx_cap_enabled = 0 peer id = 65535
[iwpriv][0x5cf3b5ee][14:07:27.945329]wlan: [3622:D:HDD] __iw_set_var_ints_getnone: exit
[schedu][0x5fab0768][14:08:13.513707]wlan: [3536:D:WMI] send_time_stamp_sync_cmd_tlv: WMA --> DBGLOG_TIME_STAMP_SYNC_CMDID mode 0 time_stamp low 50893513 high 0
[schedu][0x5fab0788][14:08:13.513739]wlan: [3536:D:WMI] wmi_log_cmd_id: Send WMI command:WMI_DBGLOG_TIME_STAMP_SYNC_CMDID command_id:118804 htc_tag:0
[iwpriv][0x60798ff8][14:08:27.049084]wlan: [3623:D:HDD] __iw_set_var_ints_getnone: enter(wlan0)
[iwpriv][0x6079900e][14:08:27.049105]wlan: [3623:D:HDD] __iw_set_var_ints_getnone: Received length 1
[iwpriv][0x6079901b][14:08:27.049118]wlan: [3623:D:HDD] __iw_set_var_ints_getnone: WE_SET_TXRX_STATS stats cmd: 29 mac_id: 0
[iwpriv][0x6079902d][14:08:27.049136]wlan: [3623:IH:DP] dp_txrx_stats_request: stats: 29 fw_stats_type: -1 host_stats: 9
[iwpriv][0x6079905a][14:08:27.049180]wlan: [3623:IH:DP] No. of interrupt contexts: 7
[iwpriv][0x60799065][14:08:27.049192]wlan: [3623:IH:DP] Max clients: 64
[iwpriv][0x60799070][14:08:27.049203]wlan: [3623:IH:DP] Max alloc size: 2097152
[iwpriv][0x6079907b][14:08:27.049214]wlan: [3623:IH:DP] Per pdev tx ring: 1
[iwpriv][0x60799086][14:08:27.049225]wlan: [3623:IH:DP] Num tcl data rings: 3
[iwpriv][0x60799091][14:08:27.049236]wlan: [3623:IH:DP] Per pdev rx ring: 0
[iwpriv][0x6079909c][14:08:27.049247]wlan: [3623:IH:DP] Per pdev lmac ring: 0
[iwpriv][0x607990a7][14:08:27.049258]wlan: [3623:IH:DP] Num of reo dest rings: 4
[iwpriv][0x607990ce][14:08:27.049296]wlan: [3623:IH:DP] Num tx desc pool: 4
[iwpriv][0x607990d7][14:08:27.049306]wlan: [3623:IH:DP] Num tx ext desc pool: 3
[iwpriv][0x607990e0][14:08:27.049315]wlan: [3623:IH:DP] Num tx desc: 4096
[iwpriv][0x607990e9][14:08:27.049324]wlan: [3623:IH:DP] Num tx ext desc: 4096
[iwpriv][0x607990f2][14:08:27.049333]wlan: [3623:IH:DP] Htt packet type: 2
[iwpriv][0x607990fb][14:08:27.049342]wlan: [3623:IH:DP] Max peer_ids: 64
[iwpriv][0x60799104][14:08:27.049351]wlan: [3623:IH:DP] Tx ring size: 3072
[iwpriv][0x6079910d][14:08:27.049360]wlan: [3623:IH:DP] Tx comp ring size: 4096
[iwpriv][0x60799116][14:08:27.049369]wlan: [3623:IH:DP] Tx comp ring size nss: 8192
[iwpriv][0x6079911f][14:08:27.049378]wlan: [3623:IH:DP] Int batch threshold tx: 1
[iwpriv][0x60799128][14:08:27.049387]wlan: [3623:IH:DP] Int timer threshold tx: 8
[iwpriv][0x60799131][14:08:27.049396]wlan: [3623:IH:DP] Int batch threshold rx: 0
[iwpriv][0x6079913a][14:08:27.049405]wlan: [3623:IH:DP] Int timer threshold rx: 512
[iwpriv][0x60799144][14:08:27.049414]wlan: [3623:IH:DP] Int batch threshold other: 1
[iwpriv][0x6079914f][14:08:27.049425]wlan: [3623:IH:DP] Int timer threshold other: 8
[iwpriv][0x6079915f][14:08:27.049442]wlan: [3623:IH:DP] Tx ring mask (0-7): 1 0 0 0 0 0 0
[iwpriv][0x6079916d][14:08:27.049456]wlan: [3623:IH:DP] Rx ring mask (0-7): 0 1 2 4 8 0 0
[iwpriv][0x6079917d][14:08:27.049472]wlan: [3623:IH:DP] Rx mon ring mask (0-7): 0 1 2 0 0 0 0
[iwpriv][0x6079918c][14:08:27.049487]wlan: [3623:IH:DP] Rx err ring mask (0-7): 0 0 0 0 0 0 1
[iwpriv][0x6079919d][14:08:27.049504]wlan: [3623:IH:DP] Rx wbm rel ring mask (0-7): 0 0 0 0 0 0 1
[iwpriv][0x607991aa][14:08:27.049517]wlan: [3623:IH:DP] Reo ring mask (0-7): 0 0 0 0 0 0 1
[iwpriv][0x607991b8][14:08:27.049531]wlan: [3623:IH:DP] Rxdma2host ring mask (0-7): 0 0 0 0 0 1 2
[iwpriv][0x607991c8][14:08:27.049546]wlan: [3623:IH:DP] Host2rxdma ring mask (0-7): 0 0 0 0 0 0 0
[iwpriv][0x607991d6][14:08:27.049561]wlan: [3623:IH:DP] Rx hash: 1
[iwpriv][0x607991df][14:08:27.049570]wlan: [3623:IH:DP] Tso enabled: 1
[iwpriv][0x607991ea][14:08:27.049581]wlan: [3623:IH:DP] Lro enabled: 0
[iwpriv][0x607991f3][14:08:27.049590]wlan: [3623:IH:DP] Sg enabled: 0
[iwpriv][0x607991fd][14:08:27.049600]wlan: [3623:IH:DP] Gro enabled: 1
[iwpriv][0x60799208][14:08:27.049611]wlan: [3623:IH:DP] rawmode enabled: 0
[iwpriv][0x60799211][14:08:27.049620]wlan: [3623:IH:DP] peer flow ctrl enabled: 0
[iwpriv][0x6079921c][14:08:27.049631]wlan: [3623:IH:DP] napi enabled: 1
[iwpriv][0x6079927b][14:08:27.049726]wlan: [3623:IH:DP] P2P Tcp Udp checksum offload: 1
[iwpriv][0x60799285][14:08:27.049736]wlan: [3623:IH:DP] NAN Tcp Udp checksum offload: 1
[iwpriv][0x6079928e][14:08:27.049745]wlan: [3623:IH:DP] Tcp Udp checksum offload: 1
[iwpriv][0x60799297][14:08:27.049754]wlan: [3623:IH:DP] Defrag timeout check: 1
[iwpriv][0x607992a1][14:08:27.049763]wlan: [3623:IH:DP] Rx defrag min timeout: 100
[iwpriv][0x607992ab][14:08:27.049773]wlan: [3623:IH:DP] WBM release ring: 1024
[iwpriv][0x607992b5][14:08:27.049783]wlan: [3623:IH:DP] TCL CMD_CREDIT ring: 32
[iwpriv][0x607992c0][14:08:27.049794]wlan: [3623:IH:DP] TCL Status ring: 32
[iwpriv][0x607992c9][14:08:27.049804]wlan: [3623:IH:DP] REO Reinject ring: 128
[iwpriv][0x607992d2][14:08:27.049813]wlan: [3623:IH:DP] RX release ring: 1024
[iwpriv][0x607992db][14:08:27.049822]wlan: [3623:IH:DP] REO Exception ring: 256
[iwpriv][0x607992e5][14:08:27.049832]wlan: [3623:IH:DP] REO CMD ring: 128
[iwpriv][0x607992f0][14:08:27.049843]wlan: [3623:IH:DP] REO STATUS ring: 256
[iwpriv][0x607992fb][14:08:27.049853]wlan: [3623:IH:DP] RXDMA refill ring: 4096
[iwpriv][0x60799304][14:08:27.049863]wlan: [3623:IH:DP] TX_desc limit_0: 0
[iwpriv][0x6079930f][14:08:27.049873]wlan: [3623:IH:DP] TX_desc limit_1: 0

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

突破长链视觉推理瓶颈:Insight-V多智能体架构解析

GitHub 仓库:https://github.com/dongyh20/Insight-V HuggingFace 模型库:https://huggingface.co/THUdyh/Insight-V arXiv 技术论文:https://arxiv.org/pdf/2411.14432 模型:https://huggingface.co/THUdyh/Insight-V-Reason 今天…

IDEA 未启用lombok插件的Bug

项目中maven已引用了lombok依赖,之前运行没有问题的,但有时启动会提示: java: You arent using a compiler supported by lombok, so lombok will not work and has been disabled. Your processor is: com.sun.proxy.$Proxy8 Lombok support…

AI工具如何深刻改变我们的工作与生活

在当今这个科技日新月异的时代,人工智能(AI)已经从科幻小说中的概念变成了我们日常生活中不可或缺的一部分。从智能家居到自动驾驶汽车,从医疗诊断到金融服务,AI正以惊人的速度重塑着我们的世界。 一、工作方式的革新…

压力测试Jmeter简介

前提条件:要安装JDK 若不需要了解,请直接定位到左侧目录的安装环节。 1.引言 在现代软件开发中,性能和稳定性是衡量系统质量的重要指标。为了确保应用程序在高负载情况下仍能正常运行,压力测试变得尤为重要。Apache JMeter 是一…

手眼标定工具操作文档

1.手眼标定原理介绍 术语介绍 手眼标定:为了获取相机与机器人坐标系之间得位姿转换关系,需要对相机和机器人坐标系进行标定,该标定过程成为手眼标定,用于存储这一组转换关系的文件称为手眼标定文件。 ETH:即Eye To …

vue 自定义组件image 和 input

本章主要是介绍自定义的组件:WInput:这是一个验证码输入框,自动校验,输入完成回调等;WImage:这是一个图片展示组件,集成了缩放,移动等操作。 目录 一、安装 二、引入组件 三、使用…

CTFHUB-web(SSRF)

内网访问 点击进入环境,输入 http://127.0.0.1/flag.php 伪协议读取文件 /?urlfile:///var/www/html/flag.php 右击查看页面源代码 端口扫描 1.根据题目提示我们知道端口号在8000-9000之间,使用bp抓包并进行爆破 POST请求 点击环境,访问flag.php 查看页…

Mysql 深度分页查询优化

Mysql 分页优化 1. 问题根源 问题: mysql在数据量大的时候,深度分页数据偏移量会增大,导致查询效率越来越低。 问题根源: 当使用 LIMIT 和 OFFSET 进行分页时,MySQL 必须扫描 OFFSET LIMIT 行,然后丢弃前…

[LeetCode-Python版]21. 合并两个有序链表(迭代+递归两种解法)

题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4] 示例 2: 输入:l1 [], l2 [] 输出&#x…

Git 安装教程

Git 是一个分布式版本控制系统,用于跟踪源代码的变化。它允许多个开发者协作开发同一个项目,能够有效管理项目的版本历史,便于协作与代码回溯。 Git官网 官网提供各种操作系统的安装程序。 step1.点击"Download for Windows"按钮&a…

Spring学习笔记-基础

前言:我是在哔哩哔哩上黑马程序员上找的课程。-----2024-12-16 官网Spring | Homehttps://spring.io/ Sping全家桶中重要三个: Spring Framework底层框架,在整个全家通中,所有的技术依赖它执行。 Spring Boot简化开发加速开发…

CNAS-AL06《实验室认可领域分类》修订,软件测试领域整体修订

为了不断适应行业发展的需要,进一步完善认可评审管理工作,进一步提高认可评审工作质量,CNAS认可委针对CNAS-AL06《实验室认可领域分类》进行了修订,并于近日正式发布。 原文件CNAS-AL06:20220101有25项一级代码,其中0…

单片机原理及应用笔记:单片机中断系统原理与项目实践

高金鹏:男,银川科技学院计算机与人工智能学院,2022级别计算机科学与技术本科生,单片机原理及应用课程第六组。 指导教师:王兴泽 电子邮件:高金鹏3535558665qq.com 个人CSDN:暴躁的海绵宝宝 暴躁的海绵宝…

【win10+RAGFlow+Ollama】搭建本地大模型助手(教程+源码)

一、RAGFlow简介 RAGFlow是一个基于对文档深入理解的开源RAG(Retrieval-augmented Generation,检索增强生成)引擎。 主要作用: 让用户创建自有知识库,根据设定的参数对知识库中的文件进行切块处理,用户向大…

在 Ubuntu 上部署 Terraform 管理平台:实现云基础设施的集中管理

简介 Terraform 是一款开源基础架构自动化工具,可让您通过命令行界面部署和管理数百台服务器。使用 Terraform,你可以通过在一个人类可读的文件中定义配置来构建、更改和管理你的基础架构。它支持许多云提供商,如 AWS、Azure、GCP 和阿里巴巴…

概率论得学习和整理25:EXCEL 关于直方图/ 频度图 /hist图的细节,2种做hist图的方法

目录 1 hist图的特点 2 hist的设置技巧:直接生成的hist图往往很奇怪不好用:因为横轴的分组不对 3 如何修改分组 4 设置开放边界,把长尾合并,得到hist图1 5 用原始表得到频数表 6 用上面的频数图做柱状图,再修改&…

RabbitMQ的核心组件有哪些?

大家好,我是锋哥。今天分享关于【RabbitMQ的核心组件有哪些?】面试题。希望对大家有帮助; RabbitMQ的核心组件有哪些? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 RabbitMQ是一个开源的消息代理(Messag…

桥接模式的理解和实践

桥接模式(Bridge Pattern),又称桥梁模式,是一种结构型设计模式。它的核心思想是将抽象部分与实现部分分离,使它们可以独立地进行变化,从而提高系统的灵活性和可扩展性。本文将详细介绍桥接模式的概念、原理…

【原创教程】西门子1500TCP_UDP通信说明大全(下篇)

2.3.3 TRCV故障说明 通讯无法正常连接时,ERROR引脚和STATUS引脚得状态有助于我们判断错误得原因,根据下表得提示,快速排除问题。 2.3.4 TRCV使用 点击TRCV指令得右上角蓝色图标,打开开始组态画面,按照控制要求填写 EN_R:用于激活接收的控制参数,及何时使用TRCV的接收功…

Grafana配置告警规则推送企微机器人服务器资源告警

前提 已经部署Grafana,并且dashboard接入数据 大屏编号地址:Node Exporter Full | Grafana Labs 创建企微机器人 备注:群里若有第三方外部人员不能创建 机器人创建完成,记录下来Webhook地址 Grafana配置告警消息模板 {{ define &…