当前位置: 首页 > news >正文

5.7 BCC工具之disksnoop.py解读

一,disksnoop.py简介

disksnoop工具用于追踪块设备的I/O操作的延迟,它会在每次I/O执行完成后打印一行摘要信息。我们根据这些摘要日志,来分析当前的I/O操作是否存在延迟,以判断I/O是否达到了瓶颈。

二,代码示例

#!/usr/bin/python
#
# disksnoop.py	Trace block device I/O: basic version of iosnoop.
#		For Linux, uses BCC, eBPF. Embedded C.
#
# Written as a basic example of tracing latency.
#
# Copyright (c) 2015 Brendan Gregg.
# Licensed under the Apache License, Version 2.0 (the "License")
#
# 11-Aug-2015	Brendan Gregg	Created this.from __future__ import print_function
from bcc import BPF
from bcc.utils import printbREQ_WRITE = 1		# from include/linux/blk_types.h# load BPF program
b = BPF(text="""
#include <uapi/linux/ptrace.h>
#include <linux/blk-mq.h>BPF_HASH(start, struct request *);void trace_start(struct pt_regs *ctx, struct request *req) {// stash start timestamp by request ptru64 ts = bpf_ktime_get_ns();start.update(&am
http://www.lryc.cn/news/300456.html

相关文章:

  • QT:实现图片选择器
  • LLM大模型相关问题汇总---包括问题与答案
  • 自动化测试定位不到元素怎么办?
  • 1 scala集合-数组
  • 双场板功率GaN HEMT电容模型以精确模拟开关行为
  • OpenCV Mat实例详解 四
  • Fluke ADPT 连接器新增对福禄克万用 Fluke 106 的支持
  • 算法-3-基本的数据结构
  • 探秘Java反射:灵活编程的利器
  • 记录 | ubuntu pyqt5 pycharm配置
  • ESP32学习(1)——环境搭建
  • Attention Is All Your Need论文笔记
  • vue-进阶语法(四)
  • CGAL::2D Arrangements-7
  • linux系统下vscode portable版本的rust环境搭建004:rust
  • 从汇编角度解释线程间互斥-mutex互斥锁与lock_guard的使用
  • 高程 | 多态性(c++)
  • LV.23 D2 开发环境搭建及平台介绍 学习笔记
  • [uniapp生命周期]详细讲解uniapp中那些属于vue生命周期,那些属于uniapp独有的生命周期,以及这中间的区别 相关的内容和api 代码注释
  • 【动态规划】【记忆化搜索】【状态压缩】1681. 最小不兼容性
  • JVM-类加载器 双亲委派机制
  • vue axios 请求后端无法传参问题
  • 打印最小公倍数
  • [AIGC] Java 和 Kotlin 的区别
  • 蓝桥杯电子类单片机提升一——超声波测距
  • 前端架构: 脚手架开发流程中的难点梳理
  • django中配置使用websocket
  • Rust复合类型详解
  • 学习 JavaScript 闭包
  • VScode中配置 C/C++ 环境 | IT拯救者