【Linux】BCC 工具使用

这篇博客介绍了如何利用BCC工具进行Linux系统诊断,包括跟踪缓慢的文件I/O,寻找内存泄漏,以及启用和跟踪JVM USDT探针。在文件I/O部分,通过特定命令收集和分析I/O延迟信息;在内存泄漏部分,展示了如何查找用户模式C++应用和内核的内存泄漏;最后,详细说明了如何利用USDT探针监控Java应用程序的类加载情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【Linux】BCC 工具使用

本实验参照该实验手册:linux-tracing-workshop

1. 缓慢的文件I/O

尝试跟踪由于I/O操作缓慢而表现出延迟的应用程序

编译并运行应用程序: 首先运行以下命令来编译logger应用程序,让其在后台执行

[root@rumia linux-tracing-workshop-master]$ gcc -g -fno-omit-frame-pointer -O0 -pthread logger.c -o logger
[root@rumia linux-tracing-workshop-master]$./logger

收集I/O延迟信息:/bcc/tools目录下执行.能够快速看到logger应用程序执行的一些较大的I/O 比其他较小的I/O花费的时间更长

[root@rumia tools]$ ./biosnoop.py
TIME(s)     COMM           PID    DISK    T SECTOR     BYTES  LAT(ms)
0.000000    logger         28988  sda     W 16668104   262144    2.75
0.000024    logger         28988  sda     W 16668616   262144    2.75
0.000047    logger         28988  sda     W 16669128   262144    2.77
0.000282    logger         28988  sda     W 16669640   262144    2.99
0.001292    logger         28988  sda     W 10504856   4096      0.75
0.011483    logger         28988  sda     W 17394904   4096      0.94
0.012350    logger         28988  sda     W 10504864   4096      0.73

观察文件I/O操作缓慢: 查看它正在写哪些文件,哪些操作所需的时间比其他时间长

[root@rumia tools]$ ./fileslower.py 1
Tracing sync read/writes slower than 1 ms
TIME(s)  COMM           TID    D BYTES   LAT(ms) FILENAME
0.023    logger         28988  W 1024       1.94 log.data
0.041    logger         28989  W 1048576    6.15 flush.data
0.044    logger         28988  W 1024       1.61 log.data
0.066 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值