off time cpu profile原理(bcc/tools/offcputime.py)

ebpf 之巅 探测cpu性能(下) 读书笔记,只记录核心要点,书中的核心例子 1、runqslower 列出运行队列中等待延迟超过阈值的线程,默认是超过了10毫秒 记录的距离是ttwu_do_wakeup()到finish_task_switch的时间。也就是说是发起唤醒某一个线程到这个线程被唤醒的延迟 2、cpudist 唤醒之后在cpu上执行的时长 3、cpufreq 展示cpu的频率信息 4、profile 定时采集调用栈出现频率的bcc 工具,可以采集到cpu使用高的栈 5、offcputime 阅读详情

        常见的profile都on cpu的,也即是程序在CPU上运行时候的情况,例如基于运行时的栈采样输出火焰图。还有一种profile概念,与上述的概念正好相反,记录的是放弃CPU的情况,它的用处一般是拿来查程序为啥吞吐,响应表现不佳,通过off cpu的数据可以定位程序都是什么原因放弃了CPU。

         要拿到on cpu的数据可能方式很多,但是要拿到off cpu的情况就需要从调度着手了,bcc提供了实现off cpu profile的工具,地址:https://github.com/iovisor/bcc/blob/master/tools/offcputime.py

简单看一下其实现原理:

struct key_t {
    u32 pid;
    u32 tgid;
    int user_stack_id;
    int kernel_stack_id;
    char name[TASK_COMM_LEN];
};
BPF_HASH(counts, struct key_t);
BPF_HASH(start, u32);
BPF_STACK_TRACE(stack_traces, STACK_STORAGE_SIZE);

struct warn_event_t {
    u32 pid;
    u32 tgid;
    u32 t_start;
    u32 t_end;
};
BPF_PERF_OUTPUT(warn_events);

int oncpu(struct pt_regs *ctx, struct task_struct *prev) {
    u32 pid = prev->pid;
    u32 tgid = prev->tgid;
    u64 ts, *tsp;

    // record previous threa
性能分析工具nanobench bcc-offcputime perf 火焰图FlameGraph valgrind 火焰图(FlameGraph)是是由 Linux 性能优化大师 Brendan Gregg 发明的。通过 perf 等工具分析得到结果,看起来就像是火焰,这也是它的名字的由来。火焰图以一个全局的视野来看待时间分布,它从底部往顶部,列出所有可能导致性能瓶颈的调用栈。火焰图就像是给一个软件系统拍的 X 光照片,可以很自然地把时间和空间两个维度上的信息融合在一张图上,以非常直观的形式展现出来,从而反映系统在性能方面的很多定量的统计规律。 阅读详情

相关推荐

eBPF—BCC: profile源码解读

profile是BCC tool中较常使用的到的一个工具,本文通过对该工具较为深入的分析来帮助大家去更深入的了解bcc tool的写法以及原理。

u012336798的博客 1491

5.65 BCC工具之offcputime.py解读

此程序显示被阻塞的堆栈跟踪以及它们被阻塞的总时长。它的工作原理是跟踪线程何时被阻塞以及何时返回CPU,同时测量它们被阻塞的时间(也称为“非CPU时间”)和被阻塞的堆栈跟踪以及任务名称。此数据通过内核进行汇总,按唯一的堆栈跟踪和任务名称汇总阻塞时间。

从0到1,突破自己 875

5.67 BCC工具之profile.py解读

profile工具是一个用于追踪程序执行调用流程的强大工具。它通过在定时间隔内对程序的堆栈跟踪进行采样,并记录采样结果的频率。我们通过使用该工具可以确定程序中的瓶颈和热点,进而优化代码以提高性能。

从0到1,突破自己 457

bcc-profile-showcaser:个人资料展示应用

Create React App入门 该项目是通过引导的。 可用脚本 在项目目录中,可以运行: yarn start 在开发模式下运行应用程序。 打开在浏览器中查看它。 如果您进行编辑,则页面将重新加载。 您还将在控制台中看到任何棉绒错误。 yarn test 在交互式监视模式下启动测试运行器。 有关更多信息,请参见关于的部分。 yarn build 构建生产到应用程序build文件夹。 它在生产模式下正确捆绑了React,并优化了构建以获得最佳性能。 生成被最小化,并且文件名包括哈希值。 您的应用已准备好进行部署! 有关更多信息,请参见关于的部分。 yarn eject 注意:这是单向操作。 eject ,您将无法返回! 如果您对构建工具和配置选择不满意,则可以随时eject 。 此命令将从您的项目中删除单个生成依赖项。 相反,它将所有配置文件和传递依赖项(webpac

通过声音识别鸟类

根据野生鸟类的外表来识别它是一回事。仅仅根据声音来识别同一只鸟是另一回事。除非你是一个熟练的观鸟者,通过声音识别鸟类可能相当具有挑战性德国马尔堡大学的一组数学、计算机科学和生物学研究人员设计了一种快速识别鸟类和监测当地生物多样性的方法。他们使用连接到 NVIDIA 的便携式设备拍摄的录音根据研究人员的说法是一个边缘人工智能系统,“基于分布式系统中运行的嵌入式边缘设备,能够对森林中记录的声景进行高效、连续的评估。”要了解更多信息,请参阅。

分享AI前沿科技 1679

【基金量化研究系列】基金绩效归因模型——Brinson多期归因模型

文章目录1. 引言2. Brinson单期归因模型2.1 模型框架2.2 公式推导3. Brinson多期归因模型3.1 模型框架3.2 公式推导4. Brinson模型的应用场景4.1 基金组合归因4.2 基金经理能力刻画4.3 大类资产配置应用5. 模型的实现与实证案例研究写在最后 1. 引言 在 2. Brinson单期归因模型 2.1 模型框架 wp wb rp 组合收益:wp rp 择股收益:wb rp rb 择时收益:wp rb 基准收益:wb rb 2.2 公式推

Mikey_Sun的博客 1万+

汇川伺服驱动器参数优化实战指南

本文详细介绍了汇川伺服驱动器参数优化的实战技巧,涵盖控制模式选择、电子齿轮比调整、刚性匹配与振动抑制等关键内容。通过实际案例和实用技巧,帮助工程师快速掌握伺服驱动器参数调校方法,提升设备运行精度和稳定性。特别针对高精度定位和高速响应场景提供了专业指导。

weixin_29070721的博客 731

成分数据的闭合效应对地球化学数据的影响及其解决方案

封闭效应 (Closure Effect),也称为常数和效应 (Constant Sum Effect),是地球化学数据分析中一个需要特别注意的统计现象。它的产生是由于我们通常使用成分数据 (Compositional Data)百分比 (%)百万分率 (ppm)由于这些数据表示的是各组分占总体的比例,它们的总和必然是一个常数 (例如 100% 或 1,000,000 ppm)。这意味着每个元素的含量不是独立的,而是与其他元素的含量相互制约。改变其中一个元素的含量必然会影响其他元素的相对比例。

qq_59349063的博客 1533

EM算法求解混合伯努利模型

本文记录了EM算法求解混合伯努利分布的推导,并提供了matlab实验代码。

霁月难逢 彩云易散 6969

基于Simulink环境,提供一个关于如何对EMI抑制的DC-DC变换器进行仿真建模的示例

EMI定义:电磁干扰是指任何能中断、阻碍、降低或限制电气设备有效性能的电磁能量。重要性合规性:确保产品符合国际和地方的EMC标准。可靠性:减少因外部或内部EMI导致的系统故障风险。挑战滤波设计:合理设计输入输出滤波器以抑制传导EMI。布局与接地:良好的PCB设计对于减少辐射EMI至关重要。屏蔽:使用金属屏蔽来保护敏感电路不受外界干扰。首先明确要模拟的任务内容。设计一个能够在高频操作下有效抑制EMI的DC-DC变换器。根据工作频率和谐振元件值确定合适的滤波器参数。

xiaoheshang_123的博客 144

【数字IC验证快速入门】26、SystemVerilog项目实践之AHB-SRAMC(6)(AHB-SRAMC SVTB Overview)

导读:作者有幸在中国电子信息领域的排头兵院校“电子科技大学”攻读研究生期间,接触到前沿的数字IC验证知识,旁听到诸如华为海思、清华紫光、联发科技等业界顶尖集成电路相关企业面授课程,对数字IC验证有了一些知识积累和学习心得。为帮助想入门前端IC验证的朋友,思忱一二后,特开此专栏,以期花最短的时间,走最少的弯路,学最多的IC验证技术知识。 文章目录一、内容概述二、AHB-SRAMC 验证计划 一、内容概述 AHB-SRAMC 验证计划 AHB-SRAMC 验证平台的架构图 AHB-SRAMC 验证平台的代.

悟已往之不谏 知来者之可追 2650

Windows 下运行 openclaw 出现“‘openclaw‘ 不是内部或外部命令,也不是可运行的程序或批处理文件“的解决方案

方案适用场景推荐指数检查并手动添加 PATH明确知道全局安装目录,只是没加进PATH⭐⭐⭐⭐⭐pnpm setup 自动配置使用 pnpm 安装,想要省心的自动化方式⭐⭐⭐⭐⭐npx 免安装临时运行快速验证核心程序是否正常,排除法排查⭐⭐⭐⭐清理残留后重装npm/pnpm 混用导致版本混乱⭐⭐⭐⭐改用 WSL2不熟悉 Windows 路径体系,长期使用⭐⭐⭐'openclaw' 不是内部或外部命令这类报错,本质上不是"程序坏了",而是。

一键难忘的博客 1万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

上一篇: ebpf初探,动态追踪golang程序
fjs_cloud
博客等级 码龄15年 248粉丝 192原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值