抓取进程中包括其所有线程的iowait时间
2024-08-24 19:15:48
perf事件是可以按照线程按照进程统计的呢,但是/proc/接口就不提供这样的功能
hon@station6:/proc/6288$ sudo perf stat -e sched:sched_switch -p 6288
[sudo] hon 的密码:
^C
Performance counter stats for process id '6288': 473 sched:sched_switch 1.267507195 seconds time elapsed hon@station6:/proc/6288$ sudo perf stat -e sched:sched_switch -t 6291
^C
Performance counter stats for thread id '6291': 157 sched:sched_switch 1.497770188 seconds time elapsed
perf可以提供线程和进程的统计功能的,perf统计的原理是啥子呢
在perf_event_open处跟踪pid函数,发现结果是:
hon@station6:~/codebox/pthread$ sudo stap perf_event_open.stp
Begin
perf: pid:6291 perf: pid:6288
perf: pid:6289
perf: pid:6290
perf: pid:6291
perf: pid:6292
这就明白是咋回事了,一个进程的线程是如何获取的,然后进程的pid
最重要的结构体是perf_event_context和perf_event,
perf: pid:12500 group_fd:4294967295
perf perf_event_alloc
perf: find_get_context.isra.82 ffff8800a770ba00
perf: pid:12932 group_fd:4294967295
perf perf_event_alloc
perf: find_get_context.isra.82 0
perf: alloc_perf_context perf: pid:12931 group_fd:4294967295
perf perf_event_alloc
perf: find_get_context.isra.82 0
perf: alloc_perf_context
perf: pid:12932 group_fd:4294967295
perf perf_event_alloc
perf: find_get_context.isra.82 ffff88013677ee00
perf: pid:12933 group_fd:4294967295
perf perf_event_alloc
perf: find_get_context.isra.82 0
perf: alloc_perf_context
perf: pid:12934 group_fd:4294967295
perf perf_event_alloc
perf: find_get_context.isra.82 0
perf: alloc_perf_context
perf: pid:12935 group_fd:4294967295
perf perf_event_alloc
perf: find_get_context.isra.82 0
perf: alloc_perf_context
都是在第一次新建的时候创建的
最新文章
- Webstorm常用的快捷键
- C语言中,定义的含义?声明的含义?它们之间的区别是什么?
- Row_Number()显示行号
- 【C语言】C语言常量和变量
- NDK 通过java调用so文件
- js 复制网页内容,兼容各浏览器
- (转)兼容主流浏览器的CSS透明代码
- 51nod建设国家
- 玩转12款Linux开源机器人
- Android 带password输入界面的Dialog实现机制
- ThinkPhp知识大全(非常详细)
- Android的路接下来该怎么走?
- ECMA262学习笔记(一)
- ASP.NET WebAPI 双向token实现对接小程序登录逻辑
- php把数据转换为json格式
- Windows最全快捷键
- 51nod 1463 找朋友(线段树+离线处理)
- jmeter测试20个QPS下的响应时间-设置QPS限制
- json--pyton中obj与json的互转,js中obj与json的互转
- 省钱小贴士(ECS):教你如何每年省出8w+ 块