5.70 BCC工具之runqslower.py解读

一,工具简介

runqslower工具显示了任务准备运行与之后在CPU上运行之间的高延迟调度时间。

该工具需要Linux 4.9+(支持BPF_PROG_TYPE_PERF_EVENT)。

二,代码示例

此脚本统计任务在运行队列中等待在CPU上运行的时间,并将此时间显示为单个事件。这个时间应该很短,但由于CPU负载,任务可能需要等待其轮次。

此脚本会统计两种类型的运行队列延迟:

1. 从任务进入运行队列到其上下文切换和执行的时间。
这通过追踪ttwu_do_wakeup()、wake_up_new_task()到finish_task_switch()的过程,
使用原始跟踪点(如果支持)或kprobes,并在自愿上下文切换后统计运行队列的延迟。

2. 从任务被非自愿上下文切换但仍处于可运行状态,到其下一次执行的时间。
这仅通过finish_task_switch()进行统计。

#!/usr/bin/env python

from __future__ import print_function
from bcc import BPF
import argparse
from time import strftime

# arguments
examples = """examples:
    ./runqslower         # trace run queue latency higher than 10000 us (default)
    ./runqslower 1000    # trace run queue latency higher than 1000 us
    ./runqslower -p 123  # trace pid 123
    ./runqslower -t 123  # trace tid 123 (us

相关推荐

  1. 5.8 BCC工具mysqld_query.py解读

    2024-03-17 12:24:02       52 阅读
  2. 5.54 BCC工具dbstat.py解读

    2024-03-17 12:24:02       45 阅读
  3. 5.56 BCC工具funcslower.py解读

    2024-03-17 12:24:02       45 阅读
  4. 5.53 BCC工具dbslower.py解读

    2024-03-17 12:24:02       41 阅读
  5. 5.49 BCC工具rdmaucma.py解读

    2024-03-17 12:24:02       42 阅读
  6. 5.52 BCC工具dbslower.py解读

    2024-03-17 12:24:02       46 阅读
  7. 5.69 BCC工具runqlen.py解读

    2024-03-17 12:24:02       46 阅读
  8. 5.82 BCC工具tcpdrop.py解读

    2024-03-17 12:24:02       39 阅读
  9. 5.70 BCC工具runqslower.py解读

    2024-03-17 12:24:02       35 阅读
  10. 5.72 BCC工具wakeuptime.py解读

    2024-03-17 12:24:02       42 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-17 12:24:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-17 12:24:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-17 12:24:02       82 阅读
  4. Python语言-面向对象

    2024-03-17 12:24:02       91 阅读

热门阅读

  1. ES6基础5

    2024-03-17 12:24:02       40 阅读
  2. docker基础(一)

    2024-03-17 12:24:02       36 阅读
  3. 前端学习笔记|CSS基础

    2024-03-17 12:24:02       46 阅读
  4. C语言自学笔记2----数据类型

    2024-03-17 12:24:02       39 阅读
  5. ChatGPT 遇到对手:Anthropic Claude 语言模型的崛起

    2024-03-17 12:24:02       45 阅读
  6. 图神经网络实战——基于Node2Vec的电影推荐系统

    2024-03-17 12:24:02       45 阅读
  7. 一种c语言利用面向对象思想编程示例

    2024-03-17 12:24:02       44 阅读
  8. P1062 [NOIP2006 普及组] 数列

    2024-03-17 12:24:02       31 阅读
  9. 【C语言】数据结构和流程控制语句

    2024-03-17 12:24:02       40 阅读
  10. JWT令牌校验是什么东西?举个例子

    2024-03-17 12:24:02       36 阅读
  11. IOS面试题object-c 111-115

    2024-03-17 12:24:02       34 阅读