5.66 BCC工具之offwaketime.py解读

一,工具简介

offwaketime工具用于追踪和分析 Linux 系统中线程的 Off-CPU 时间,即线程不在 CPU 上执行的时间。特别地,它还关注哪些线程(唤醒者)唤醒了之前处于阻塞或休眠状态的线程。这对于性能分析和调试非常有用,尤其是当你想知道为什么某个线程在一段时间内没有执行时。

它可以显示被阻塞和“off-CPU”的内核堆栈跟踪和任务名称,以及唤醒它们的线程的堆栈跟踪和任务名称,以及从它们被阻塞到被唤醒时的总经过时间。这结合了offwaketime和wakeuptime工具的总结。时间测量将与off-CPU时间非常相似,但是,off-CPU时间可能包括一点额外的时间,该时间花费在等待运行队列被调度上。组合的堆栈、任务名称和总时间在内核上下文中进行了总结,以提高效率,使用eBPF映射。

输出摘要将进一步帮助你确定线程阻塞的原因,并量化从阻塞到唤醒的时间。这涵盖了所有类型的阻塞活动:磁盘I/O、网络I/O、锁、页面错误、交换、休眠、非自愿上下文切换等。

二,代码示例

#!/usr/bin/env python

from __future__ import print_function
from bcc import BPF
from time import sleep
import argparse
import signal
import errno
from sys import stderr

# 参数校验
def positive_int(val):
    dest = []
    # Filter up to 5 pids, arbitrary
    args_list = val.split(",", 5)
    pids_to_add = min(len(args_list), 5)
    for i in range(pids_to_add):
        

相关推荐

  1. 5.56 BCC工具funcslower.py解读

    2024-03-18 18:18:02       22 阅读
  2. 5.8 BCC工具mysqld_query.py解读

    2024-03-18 18:18:02       26 阅读
  3. 5.54 BCC工具dbstat.py解读

    2024-03-18 18:18:02       22 阅读
  4. 5.53 BCC工具dbslower.py解读

    2024-03-18 18:18:02       21 阅读
  5. 5.49 BCC工具rdmaucma.py解读

    2024-03-18 18:18:02       18 阅读
  6. 5.52 BCC工具dbslower.py解读

    2024-03-18 18:18:02       25 阅读
  7. 5.69 BCC工具runqlen.py解读

    2024-03-18 18:18:02       20 阅读
  8. 5.82 BCC工具tcpdrop.py解读

    2024-03-18 18:18:02       18 阅读
  9. 5.70 BCC工具runqslower.py解读

    2024-03-18 18:18:02       16 阅读
  10. 5.72 BCC工具wakeuptime.py解读

    2024-03-18 18:18:02       24 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-18 18:18:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-18 18:18:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-18 18:18:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-18 18:18:02       18 阅读

热门阅读

  1. 备份恢复新体验!pgBackRest与IvorySQL的完美融合

    2024-03-18 18:18:02       18 阅读
  2. Spring概述总结

    2024-03-18 18:18:02       20 阅读
  3. Linux的内存计算不准如何解决?

    2024-03-18 18:18:02       18 阅读
  4. LLM大模型统一封装接口解决方案

    2024-03-18 18:18:02       21 阅读
  5. VTK中GetOutputPort()和GetOutput()的区别

    2024-03-18 18:18:02       21 阅读
  6. 【Educoder数据挖掘实训】用Cosine计算相似度

    2024-03-18 18:18:02       18 阅读