ebpf 之巅 探测cpu性能(下)

读书笔记,只记录核心要点,书中的核心例子

1、runqslower

列出运行队列中等待延迟超过阈值的线程,默认是超过了10毫秒

记录的距离是ttwu_do_wakeup()到finish_task_switch的时间。也就是说是发起唤醒某一个线程到这个线程被唤醒的延迟

 唤醒5号任务,从ttwu_do_wakeup发起,一直到完成5号任务finish_task_switch,完成切换的时间延迟。

2、cpudist

唤醒之后在cpu上执行的时长

在cpu运行的时间 

3、cpufreq

展示cpu的频率信息

4、profile

定时采集调用栈出现频率的bcc 工具,可以采集到cpu使用高的栈

5、offcputime

用于统计线程阻塞和脱离cpu运行的时间,同时输出调用栈信息,来理解阻塞的原因

统计从调度出去,进入睡眠,一直到io完成唤醒经历的时间

6.syscount

可以统计哪一些系统调用在某一时刻使用的比较多

7.argdist和trace

如果我们通过syscount 找到调用比较多的系统调用,可以使用tplist找到参数列表,然后通过argdist统计出参数出现的频率

8、funccount

统计事件和函数调用频率,可以看那些函数调用频率比较高

9、softirqs

软中断消耗的cpu时间。

10、hardirqs

硬中断消耗cpu时间

11、smpcalls

跟踪跨cpu调用时间,跟踪的是smp_call_function* 到 smp_send_reschedule 的时间

1. 远程cpu执行任务调度

本地cpu端的Linux核心层通过函数smp_send_reschedule,向指定cpu发送“执行任务调度”需求。

void smp_send_reschedule(int cpu)
{
    smp_cross_call(cpumask_of(cpu), IPI_RESCHEDULE);
}

12、llcstat

输出最后一级缓存命中率

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值