本文主要是介绍5.71 BCC工具之wqlat.py解读,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一,工具简介
wqlat工具统计线程阻塞的时间,并显示执行唤醒操作的线程的堆栈跟踪,以及唤醒进程和目标进程的进程名,以及总的阻塞时间。这个阻塞时间是从一个线程阻塞时开始统计的,直到发送唤醒信号时结束。请注意,这个时间不包括目标线程的一些运行队列延迟,因为目标线程如果需要等待在CPU上的轮次,可能不会立即执行。所有显示的数据,包括堆栈跟踪、进程名和时间,都在内核中使用eBPF映射进行高效汇总。
该工具旨在在offcputime之后使用,offcputime显示了直接阻塞的堆栈。然后可以使用wakeuptime来显示执行唤醒操作的堆栈。
二,代码示例
#!/usr/bin/env pythonfrom __future__ import print_function
from bcc import BPF
from bcc.utils import printb
from time import sleep
import argparse
import signal
import errno
from sys import stderr# arg validation
def positive_int(val):try:ival = int(val)except ValueError:raise argparse.ArgumentTypeError("must be an integer")if ival < 0:raise argparse.ArgumentTypeError("must be positive")return ivaldef positive_nonzero_int(val):ival = positive_int(val)if ival == 0:raise argparse.A
这篇关于5.71 BCC工具之wqlat.py解读的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!