尝试使用LTTng+TraceCompass分析一下进程周期偏移

news2025/1/13 7:29:11

准备工作

我先是在板子里通过LTTng Stream的方式将log保存在了上位机里。
然后在上位机中打开TraceCompass分析log。

导出整理log数据

然后我在events表格中搜索我的进程名,发现主要是sched_switch sched_waking sched_wakeup这三类。
然后我又搜索了一下,发现sched_switch是真正在cpu上切换了进程,waking 和 wakeup是唤醒过程的开始和结束。分别位于try_to_wake_up的入口和出口。

我准备观察一下运行周期。然后我在内容区域搜索:

next_comm=我的进程名

之后选中所有的log 导出到csv中。

然后编写公式上下两个时间戳相减。

时间戳的格式可以在Tracecompass的属性设置里 Trace那个条目下方便的更改。

得出时间差后,开启筛选。轻松找到异常的数据。

回到Tracecompass分析

我发现30ms周期的任务在某一次唤醒间隔了46ms.
我找到shced_waking 和sched_switch的位置。
发现之间确实间隔了16ms属于是wait for cpu的状态。
在这里插入图片描述
在另外的视图中显示被抢占。:
在这里插入图片描述

在仔细观察了执行流之后发现:
该进程先是在CPU0上被唤醒,但是CPU0上先唤醒了一个同优先级的RT进程。
在执行这些RT进程之前,CPU0长期陷入一个叫kworker的进程中。没有被抢占。
这个kworker还多次被irq或者软中断打断。
另外,kworker释放之后,显示被先来的同优先级RT进程占有,中间还被另外一个高优先级的RT进程抢占。

最后我观测的进程等不下去了,迁移到领一个cpu上。得到执行。

在这个过程中,另外一个cpu多次得到闲置。

这里我发现一个小技巧,可以在resources视图下,沿着cpu来走,结合调度flow看cpu的分配。

那这个优先级是20 nice=0的普普通通的kworker是什么?

在往前面看,这个kworker曾经多次被其他的rt进程抢占,甚至优先级不如本进程高。
那我怀疑可能是什么资源被占用了吧。这样需要具体进代码研究了。
好像从内核函数上并没有看出来。

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

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

相关文章

10个最好的WordPress RSS插件比较(2022)

您是否正在为您的网站寻找最好的 WordPress RSS 提要插件? RSS 提要插件可以轻松地自动从其他网站提取内容并将其显示在您的网站上。它们还可用于提高参与度、增加流量和增加页面浏览量。 在本文中,我们将分享我们挑选的可在您的网站上使用的最佳 Word…

远眺捷码智慧乡村方案赋能乡村治理,打造更智慧更宜居的乡村

01.智慧乡村治理重要性 “智慧乡村”是以云计算、大数据应用、地理信息系统网络、物联网技术为核心,通过构建服务于政务管理、农业增收、民生幸福等方面的系统应用平台,将社会基础信息、产业发展、环境监测、医疗卫生、劳动保障、社会管理、公共服务等要…

全面便捷的数据管理能力,助力数据运营降本增效

对于任何企业来说,销售和供应链总是天平秤座的两端。如何放置两个砝码是对企业管理能力的极大考验。今天,让我们来谈谈供应链管理的例子来探讨一下对于报表工具而言,怎么样才能让客户全面、便捷的全局管理数据接入。背景:有序的供…

SPRING-了解4-AOP1

主要理念:不用继承,而是用Java Reflect类中的Proxy来实现对方法的增强 面向切面编程 oop的延续,对业务进行隔离,降低耦合度,目标是不改变原来的代码在主干中增加新功能 比如已经写好登录功能,现在需要加…

【大数据技术】流数据、流计算、Spark Streaming、DStream的讲解(图文解释 超详细)

流数据和流计算 在大数据时代,数据可以分为静态数据和流数据,静态数据是指在很长一段时间内不会变化,一般不随运行而变化的数据。流数据是一组顺序、大量、快速、连续到达的数据序列,一般情况下数据流可被视为一个随时间延续而无…

脑白质WM中的血流动力学响应函数HRF的特性

血流动力学响应函数HRF 估计BOLD信号的血流动力学响应函数(HRF)对于解释和分析与事件相关的fMRI数据至关重要广义线性模型(GLM)假设BOLD信号是真实反应与HRF进行卷积而得到的 一般来说,白质中功能激活的检测灵敏度远低于灰质,并且激活区域一般较小 原因…

[附源码]Nodejs计算机毕业设计健身房管理系统设计Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置: Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分…

J-003 Jetson电路设计之USB设计--NANO XAVIER NX

USB设计1 简介2 框图介绍3 USB HUB设计3.1电源部分3.2 芯片引脚3.3 晶振电路4 电源控制4.4 电源开关电路设计4 调试USB电路设计1 简介 NANO & XAVIER NX提供三路USB接口,其中包含一路调试USB(用于镜像下载)和一路USB3.2接口。引脚说明: …

编码踩坑——MySQL更新存放JSON的字段、\“ 转义成 “

本篇介绍在执行MySQL线上变更时遇到的问题,表现为"更新JSON字段时,实际更新的值与SQL语句中的值不一致,JSON格式错误",如下; 问题描述 处理线上问题,需要新插入一条记录;将原JSON粘贴…

Jenkins(2)— 配置webhooks触发器

1、项目配置 项目配置 >> 构建触发器 >> 选择Gitee webhook触发器 生成Gitee WebHook密码:46d678257c0399b105635bcb9722ea09 2、Gitee配置 Gitee项目 >> 管理 >> 配置WebHooks 注意: 由于我的jenkins是部署在本地的&#xff…

element-ui+js+vue——实现图片的放大缩小拖动等功能——技能提升

elementuijsvue——实现图片组件的封装 1. 实现图片的放大缩小 2. 实现图片的拖动功能 3. 实现图片的预览最近同事在写一个关于 图片放大缩小拖动的功能,其实不止是图片,只要是在以下组件中的内容,都是可以支持放大缩小拖动的。 功能&#x…

Web前端项目的跨平台桌面客户端打包方案之——CEF框架

文章目录1、什么是CEF2、测测你电脑里的CEF3、从0开始的CEF入门实例1、什么是CEF CEF是什么 概念 Chromium Embedded Framework (CEF)是个基于Google Chromium项目的开源Web browser控件。 CEF的目标是为第三方应用提供可嵌入浏览器支持。CEF隔离底层Chromium和Blink的复杂代码…

靠着数套的Java刷题PDF,成功“混进”腾讯T3

昨晚半夜,一个学Java的老弟突然打电话告诉我他拿到了腾讯T3的offer,说实话,我有点诧异。。。 这老弟也是渣硕一枚,去投岗了腾讯的Java后台开发岗位。等了一个星期后简历被放回池子里了,眼看着提前批马上就要截止了&am…

jsp+ssm计算机毕业设计多媒体课程精品课程网站【附源码】

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: JSPSSM mybatis Maven等等组成,B/S模式 Mave…

海量数据小内存!从未出现过的数在哪里

文章目录题目要求1)内存 1G2)内存 3 KB3)内存 有限变量举例题目 现在有 40 亿个无符号整数,无符号整数的范围是 0 ~ 232-1(42亿),哪怕 40 亿个数完全不同,在该范围中也总有没有出现…

傻白探索Chiplet,关于EPYC Zen2 的一些理解记录(五)

目录 一、知识铺垫 (1)Chiplet (2)Zen架构 (3)EPYC和Ryzen (4)EPYC Zen2 二、关于EPYC Zen2里的部件 (1)内存控制器 (2&#xff…

Python本地下载-实例的SQL审计日志

简介:使用阿里云的RDS数据库,开启DAS的数据库治理服务。会产生大量的审计日志。 我们有2T的审计日志数据,保留180天,每小时收费空间:0.008元/GB/小时 计算下来:2x1024x 24x 30 x 0.008 11796 元 解决&…

分类预测 | MATLAB实现CNN-LSTM卷积长短期记忆神经网络分类预测(语音分类)

分类预测 | MATLAB实现CNN-LSTM卷积长短期记忆神经网络分类预测(语音分类) 目录 分类预测 | MATLAB实现CNN-LSTM卷积长短期记忆神经网络分类预测(语音分类)基本描述模型结构设计过程参考资料基本描述 传统的语音识别技术,主要在隐马尔可夫模型和高斯混合模型两大”神器“的加持…

[element plus] 分页组件使用 - vue

学习关键语句: 饿了么加组件分页组件 element分页组件 vue3 饿了么分页组件 写在前面 必须要说明的是 , 这篇文章使用的分页组件样式包含了饿了么官方给出警告以后会弃用的部分 但是问题是什么呢? 问题就是我还没找到这个用 vmodel 绑定的使用方法 , 再加上现在也算是有点…

C++代码简化之道

1. 善用emplace C11开始STL容器出现了emplace(置入)的语义。比如 vector、map、unordered_map,甚至 stack和 queue都有。 emplace方便之处在于,可以用函数参数自动构造对象,而不是向vector的push_back,ma…