Bcc-tools 中文件系统相关工具介绍

news2024/11/28 14:37:55

之前简单介绍过了Linux下的工具集 bcc-tools,

本次详细的介绍一下和文件系统相关的一些实用工具,以下工具可以快速的帮我们定位文件系统相关问题,比如:

  • 当前系统在读写哪些文件?
  • 哪些文件读写耗时比较长?
  • 哪些进程在频繁创建删除文件?

在这里插入图片描述
上图为bcc

目录

    • filelife 【文件寿命跟踪】
    • fileslower 【读写慢文件检测】
    • filetop 【文件读写数据量TOP】
    • vfscount 【VFS函数调用次数TOP】
    • vfsstat 【VFS读写检测】
    • xfsslower/ext4slower 【XFS/EXT4 慢文件检测】

filelife 【文件寿命跟踪】

该工具通过跟踪vsf_create()vfs_delete()函数,来检测文件从创建到删除的存活时间。
工具会输出进程ID、线程名称、文件寿命和文件名称。
通过 filelife 我们可以看到哪些线程在频繁创建和删除文件。

TIME     PID    COMM             AGE(s)  FILE
10:07:39 1493   vnode-mgmt       0.05    meta-ver130
10:07:39 1493   vnode-mgmt       0.03    meta-ver130
10:07:39 1493   vnode-mgmt       0.70    00000000000000006878.idx
10:07:39 1493   vnode-mgmt       0.00    main.tdb-journal.1
10:07:39 1493   vnode-mgmt       0.00    main.tdb-journal.2
10:07:39 1493   vnode-mgmt       0.00    main.tdb-journal.3
10:07:39 1493   vnode-mgmt       0.00    main.tdb-journal.4
10:07:39 1493   vnode-mgmt       0.00    main.tdb-journal.5
10:07:39 1493   vnode-mgmt       0.00    main.tdb-journal.6
10:07:39 1493   vnode-mgmt       0.00    main.tdb-journal.7
10:07:39 1493   vnode-mgmt       0.00    main.tdb-journal.8
10:07:39 1493   vnode-mgmt       0.00    main.tdb-journal.9
10:07:39 1493   vnode-mgmt       0.00    main.tdb-journal.10
10:07:39 1493   vnode-mgmt       0.00    main.tdb-journal.11
10:07:39 1493   vnode-mgmt       0.00    main.tdb-journal.12
10:07:39 1493   vnode-mgmt       0.00    main.tdb-journal.13
10:07:39 1493   vnode-mgmt       0.00    main.tdb-journal.14
10:07:39 1493   vnode-mgmt       0.01    MANIFEST-000001
10:07:39 1493   vnode-mgmt       0.00    main.tdb-journal.1
10:07:39 1493   vnode-mgmt       0.00    main.tdb-journal.2
10:07:39 1493   vnode-mgmt       0.00    main.tdb-journal.3
10:07:39 1493   vnode-mgmt       0.00    main.tdb-journal.4
10:07:39 1493   vnode-mgmt       0.00    main.tdb-journal.1
10:07:39 1493   vnode-mgmt       0.00    main.tdb-journal.2
10:07:39 1493   vnode-mgmt       0.00    main.tdb-journal.3
10:07:39 1493   vnode-mgmt       0.00    main.tdb-journal.4
10:07:39 1493   vnode-mgmt       0.00    MANIFEST-000001
10:07:39 1493   vnode-mgmt       0.00    main.tdb-journal.1
10:07:39 1493   vnode-mgmt       0.00    main.tdb-journal.2
10:07:39 1493   vnode-mgmt       0.00    main.tdb-journal.3
10:07:39 1493   vnode-mgmt       0.00    main.tdb-journal.4
10:07:39 1493   vnode-mgmt       0.00    main.tdb-journal.5
10:07:39 1493   vnode-mgmt       0.00    main.tdb-journal.6
10:07:39 1493   vnode-mgmt       0.00    main.tdb-journal.7

fileslower 【读写慢文件检测】

这个工具用来检测读写耗时长的文件,如果不指定耗时,默认为10ms。

可以通过以下参数指定基础你好ID和耗时,fileslower -p 281933 100

  • D 表示读写动作,R(读),W(写)
Tracing sync read/writes slower than 10 ms
TIME(s)  COMM           TID    D BYTES   LAT(ms) FILENAME
1.417    vnode-merge    281993 R 4096      14.01 v18f19579ver144631.stt
1.877    vnode-merge    281993 R 4096      10.74 v18f19579ver144645.stt
1.891    vnode-merge    281993 R 4096      13.08 v18f19579ver144645.stt
2.164    vnode-merge    281993 R 4096      10.47 v18f19579ver144613.stt
2.202    vnode-merge    281993 R 4096      11.78 v18f19579ver144593.stt
2.968    vnode-merge    281993 R 4096      14.04 v18f19579ver144652.stt
2.981    vnode-merge    281993 R 4096      12.43 v18f19579ver144652.stt
3.318    vnode-merge    281993 R 4096      11.59 v18f19579ver144614.stt
3.334    vnode-merge    281993 R 4096      15.62 v18f19579ver144614.stt
4.659    vnode-merge    281993 R 4096      21.78 v18f19579ver144706.stt
4.669    vnode-merge    281993 R 4096      10.38 v18f19579ver144706.stt
5.312    vnode-merge    281993 R 4096      10.46 v18f19579ver144620.stt
6.025    vnode-merge    281993 R 4096      14.37 v18f19579ver144693.stt
6.191    vnode-merge    281993 R 4096      17.30 v18f19579ver144616.stt
6.209    vnode-merge    281993 R 4096      16.72 v18f19579ver144616.stt

filetop 【文件读写数据量TOP】

该工具用于统计一段时间内读写较高的文件。

  • READS/WRITES 读写次数
  • R_Kb/W_Kb 读写数据量
  • T 文件类型:R(常规文件),S(Socket),O(other)
00:21:41 loadavg: 48.26 48.36 47.02 50/1685 393731

TID    COMM             READS  WRITES R_Kb    W_Kb    T FILE
281992 vnode-merge      407    0      1628    0       R v50f19544ver140873.stt
281966 vnode-merge      0      380    0       1520    R v50f19565ver1724.data
281970 vnode-merge      0      350    0       1400    R v50f19549ver1704.data
281978 vnode-merge      337    0      1348    0       R v50f19569ver131206.stt
281994 vnode-merge      334    0      1336    0       R v50f19540ver140920.stt
281989 vnode-merge      331    0      1324    0       R v50f19568ver136719.stt
281977 vnode-merge      292    0      1168    0       R v50f19574ver75820.stt
281994 vnode-merge      0      289    0       1156    R v50f19540ver1250.data
281972 vnode-merge      286    0      1144    0       R v50f19578ver140918.stt
281992 vnode-merge      0      281    0       1124    R v50f19544ver1250.data
281978 vnode-merge      0      277    0       1108    R v50f19569ver2115.data
281953 vnode-merge      0      262    0       1048    R v50f19557ver1704.data
281968 vnode-merge      0      260    0       1040    R v50f19541ver1250.data
281972 vnode-merge      0      259    0       1036    R v50f19578ver2132.data
281970 vnode-merge      256    0      1024    0       R v50f19549ver130808.stt
281996 vnode-merge      241    0      964     0       R v50f19564ver117468.stt
281961 vnode-merge      237    0      948     0       R v50f19572ver134799.stt
281974 vnode-merge      0      235    0       940     R v50f19556ver1704.data
281980 vnode-merge      0      231    0       924     R v50f19552ver1704.data
281997 vnode-merge      218    0      872     0       R v50f19571ver140943.stt

vfscount 【VFS函数调用次数TOP】

用于统计一段时间内调用vfs_相关函数的次数,并进行排序。
如果命令后不加时间(默认s),需要使用Ctrl-C中止。

Tracing... Ctrl-C to end.
^C
ADDR             FUNC                          COUNT
ffffffffb7c69a71 vfs_rename                        2
ffffffffb7c69471 vfs_create                        2
ffffffffb7c6a351 vfs_unlink                        6
ffffffffb7c617e1 vfs_fstat                        13
ffffffffb7c594e1 vfs_open                         55
ffffffffb7c94311 vfs_statfs                       58
ffffffffb7c61841 vfs_fstatat                      62
ffffffffb7c61761 vfs_getattr                      75
ffffffffb7c5ba91 vfs_read                       1972
ffffffffb7c5bc01 vfs_write                      2507

vfsstat 【VFS读写检测】

统计一段时间时间内 VFS 调用的次数,与vfscount不同,该工具不会输出线程信息,仅对不同的调用进行统计。

TIME         READ/s  WRITE/s CREATE/s   OPEN/s  FSYNC/s
10:09:02:       325      487        0        2        0
10:09:03:       317      485        1        4        0
10:09:04:       226      904       15       26        0
10:09:05:       295      538        2        3        0
10:09:06:       318      478        0        2        0
10:09:07:       338      488        0        5        0
10:09:08:       305      466        2        2        0
10:09:09:        42       96       12       18        0
10:09:10:       334     1009        6       23        0
10:09:11:       695      760        0        6        0
10:09:12:       699      765        0        1        0
10:09:13:       519      647        2       19        0
10:09:14:       331      507        0        1        0
10:09:15:       269      664       14       19        0
10:09:16:       291      820        4       13        0
10:09:17:       337      519        0        0        0
10:09:18:       328      501        0        2        0

xfsslower/ext4slower 【XFS/EXT4 慢文件检测】

统计一段时间内存 XFS/EXT4 文件系统中文件的读写时间。

  • T 文件类型:R(常规文件),S(Socket),O(other)
  • OFF_KB File offset
Tracing XFS operations slower than 10 ms
TIME     COMM           PID    T BYTES   OFF_KB   LAT(ms) FILENAME
10:01:57 vnode-write    1146   S 0       0         566.79 vnode_tmp.json
10:01:57 vnode-write    1146   S 0       0         327.59 vnode_tmp.json
10:01:57 vnode-commit   1146   S 0       0         149.27 00000000000000000000.log
10:01:57 vnode-commit   1146   S 0       0         148.91 00000000000000000000.log
10:01:58 vnode-commit   1146   S 0       0          12.75 v4f1736ver1.stt
10:01:58 vnode-commit   1146   S 0       0          13.99 00000000000000005123.log
10:02:02 vnode-write    1146   S 0       0          12.11 vnode_tmp.json
10:02:02 vnode-commit   1146   S 0       0          12.44 00000000000000005123.log
10:02:02 vnode-commit   1146   S 0       0          10.90 00000000000000005232.log
10:02:04 vnode-write    1146   W 280053  9300       11.15 00000000000000005232.log
10:02:05 vnode-merge    1146   S 0       0         171.87 v4f1736ver3.head
10:02:05 vnode-merge    1146   S 0       0         304.71 v5f1736ver3.head
10:02:05 vnode-merge    1146   S 0       0          10.30 v4f1736ver3.data
10:02:05 vnode-merge    1146   S 0       0          12.02 v4f1736ver3.sma
10:02:05 vnode-merge    1146   S 0       0          12.38 v5f1736ver3.data
10:02:08 vnode-commit   1146   S 0       0         143.99 00000000000000005232.log
10:02:08 vnode-commit   1146   S 0       0          97.54 00000000000000005240.log
10:02:08 vnode-commit   1146   S 0       0          10.37 v5f1736ver4.stt
10:02:08 vnode-commit   1146   S 0       0          10.48 00000000000000005350.log
10:02:13 vnode-write    1146   S 0       0         796.80 vnode_tmp.json
10:02:13 vnode-write    1146   S 0       0         927.95 vnode_tmp.json
10:02:13 vnode-commit   1146   S 0       0          11.38 00000000000000005359.log
10:02:13 vnode-commit   1146   S 0       0          13.13 00000000000000005350.log
10:02:13 vnode-write    1146   W 280053  1094       10.11 00000000000000005475.log
10:02:14 vnode-commit   1146   S 0       0          10.81 00000000000000005475.idx
10:02:14 vnode-commit   1146   S 0       0          13.89 v5f1736ver5.stt
10:02:14 vnode-commit   1146   S 0       0          21.05 00000000000000005467.idx
10:02:16 vnode-merge    1146   S 0       0          11.46 v4f1736ver3.data
10:02:19 vnode-commit   1146   S 0       0          34.90 00000000000000005475.log
10:02:19 vnode-commit   1146   S 0       0          32.18 00000000000000005467.log
10:02:19 vnode-commit   1146   S 0       0          10.05 meta-ver.tmp
10:02:19 vnode-commit   1146   S 0       0          11.30 v4f1736ver7.stt
10:02:19 vnode-commit   1146   S 0       0          12.99 00000000000000005593.log
10:02:20 vnode-write    1146   W 280053  4923       12.18 00000000000000005585.log

以上信息在 Github 的 Bcc 库中都能找到。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1187950.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

electron+vite+vue3项目打包

1.安装打包依赖,调整打包命令 npm install electron-builder -D 2.安装完成后,在 package json 中,配置 build 命令 "build": "vite build && electron-builder", 3.electron/index.js修改 win.loadURL 中…

C语言指针详解与应用

写在前面:本文是基于哔哩哔哩江协科技的[C语言] 指针的详解与应用-理论结合实践,真正理解指针!学习时写的笔记,复习查阅方便,如有侵权,联系删除。 另外本人也是初学者,有很多理解不透彻的或者错…

聚焦谋发展,筑梦新征程——云起无垠乔迁新址

2021年7月,网络安全新锐企业北京云起无垠科技有限公司(以下简称:云起无垠)注册成立。云起无垠致力于研究漏洞挖掘尖端技术和打造卓越漏挖工具,并在业界迅速崭露头角,受到了广泛瞩目。 发展至今&#xff0c…

如何查看笔记本电脑电池损耗

1.下载图吧工具箱 在官网下,不要下错了,不然会有很多垃圾捆绑软件,我放一个百度云链接,安装包上传上去了 链接:https://pan.baidu.com/s/18dguF5OGktbPkW7EszZZqA 提取码:1024 2.安装打开后点击主办工具-…

基于SSM的公务用车管理智慧云服务监管平台

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

零基础产品经理如何迅速学习Axure原型制作?快速上手攻略!

如果Adobe xd是一个简单易用的UI设计软件,那么Axure应该是一个强大的原型软件。Axure不仅可以制作静态界面原型,还可以在此基础上增加交互效果。虽然Axure的功能比较复杂,但在学习和掌握之后,可以完美实现产品经理心目中的原型体验…

“产业大数据”助推园区实现可持续发展!

​产业园区在现代经济体系中扮演着重要角色,不仅是地方经济的重要支柱,更是企业发展的舞台。产业园区要想实现可持续的长远发展,不仅需要不断的招引优质企业入驻,更要时刻关注园内的企业,培育有潜力的企业,…

22款奔驰GLS450升级中规主机 实现导航地图 中文您好奔驰

很多平行进口的奔驰GLS都有这么一个问题,原车的地图在国内定位不了,语音交互功能也识别不了中文,原厂记录仪也减少了,使用起来也是很不方便的。星骏汇小许 Xjh15863 其实很简单,我们只需要更换一台中规的新主机就可以实…

算法记录|笔试中遇到的题

栈 394. 字符串解码730.统计不同回文子序列 394. 字符串解码 我自己写的方法 class Solution {public String decodeString(String s) {char[] chs s.toCharArray();LinkedList<Character> stack new LinkedList<>();for(char ch:chs){if(ch]){stack helper(st…

docker部署es+kibana

es 暴露的端口特别多 &#xff0c;十分耗内存&#xff0c;数据一般要放置到安全目录&#xff0c;挂载 官网推荐的命令&#xff1a;docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.typesingle-node" elasticsearch…

C语言中一维指针、二维指针和三维指针

指针可以指向一份普通类型的数据&#xff0c;例如 int、double、char 等&#xff0c;也可以指向一份指针类型的数据&#xff0c;例如 int *、double *、char * 等。 如果一个指针指向的是另外一个指针&#xff0c;我们就称它为二级指针&#xff0c;或者指向指针的指针。 假设…

无代码开发:猪猪快递云与电商平台、CRM系统的快速集成

无代码开发及其价值 无代码开发正在逐渐改变我们的工作方式&#xff0c;它使得不具备编程知识的人也能够进行软件开发和集成。其中&#xff0c;猪猪快递云是一个综合性的智能物流服务平台&#xff0c;致力于为各类物流企业提供全方位、一站式的物流解决方案。该平台集成了多种…

覆盖13个行业,数据分类分级标准汇编更新啦!(附下载)

2016年11月&#xff0c;《网络安全法》明确将“数据分类”作为网络安全保护法定义务之一。 2021年9月&#xff0c;《数据安全法》再次具体确立了“数据分类分级保护制度”及其基本原则。 2021年11月&#xff0c;《个人信息保护法》、《网络数据安全管理条例(征求意见稿)》相继出…

YB1109M是一种高效电流模式具有固定操作频率的升压转换器。

YB1109MB 1.2MHz&#xff0c;2A输出电流&#xff0c;升压转换器 概述&#xff1a; YB1109M是一种高效电流模式具有固定操作频率的升压转换器。YB1109M已在NMOSFTET上集成了非常低的Rds以减少功率损耗并实现高效率。最大效率高达93%。YB1109M/YB1109MB可输出2AVIN高于3.3V且输…

报名开启!飞桨AI for Science公开课与共创计划邀您来学,探索AI与科学的融合

你是否对人工智能驱动的科学研究&#xff08;AI for Science&#xff09;感兴趣&#xff1f;是否想深入了解深度学习技术与科学计算的应用&#xff1f;现在&#xff0c;飞桨AI for Science公开课与共创计划正式开启报名&#xff01; 亮点 深度学习技术与科学计算融合的课程体…

低功耗MCU应用的编程技巧

低功耗微控制器&#xff08;MCU&#xff09;在许多电子设备中扮演着重要角色&#xff0c;特别是在依赖电池供电或者需要长时间待机的应用中。为了最大程度地延长电池使用寿命或减少能源消耗&#xff0c;开发人员需要采取针对低功耗的编程技巧。以下是一份关于低功耗MCU应用的编…

Window环境NFS服务务器搭建及连接

1.NFS服务端搭建&#xff0c; 下载haneWIN NFS 服务端软件&#xff08;工具下载路径&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1HXeQ8nIY4RHVltd0uAvFaw 提取码&#xff1a;w18j &#xff09; 2.安装haneWIN NFS 服务端软件比较简单&#xff0c;直接点下一步即可…

软件外包开发文档内容

项目的具体需求可能导致需要更多或更少的文档内容&#xff0c;并且某些文档可能会合并或细分成独立的部分。外包项目的文档应当根据项目规模、复杂性和特定需求来调整。软件外包开发文档通常包含以下部分&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;…

基于springboot实现智慧外贸平台系统【项目源码+论文说明】计算机毕业设计

基于springboot实现智慧外贸平台系统演示 摘要 网络的广泛应用给生活带来了十分的便利。所以把智慧外贸管理与现在网络相结合&#xff0c;利用java技术建设智慧外贸平台&#xff0c;实现智慧外贸的信息化。则对于进一步提高智慧外贸管理发展&#xff0c;丰富智慧外贸管理经验能…