概述

很多时候我们在问题调查中有时候会看到磁盘很忙但是就是不知道谁在写,今天主要介绍几个简单方法能够比较方便的看到磁盘写的细节。


思路

首先,来看看IO协议栈的大致样子,然后我们就知道所谓的查看磁盘读写的工具到底如何工作的了。

从图上可以看到,如果我们要做IO探查工具,首选位置肯定是Block I/O layer这一层,因为所有的IO都流经这里,只要我们能在这里挂个钩子,就可以拦截IO请求。


block_dump

1、block_dump

block_dump的话需要先停掉syslog功能,因为具体IO数据要通过printk输出,如果syslog存在,则会往message产生大量IO,干扰正常结果。

--停止syslogservice syslog stop /systemctl stop syslog--启动block_dumpecho 1 > /proc/sys/vm/block_dump

设置之后,block层处理的IO请求都会将摘要信息print到缓冲区中,可以通过dmesg查看。比如

$dmesg |grep READ|tail -n 5

每行一个操作,分别表示哪个进程在何时在哪个磁盘(分区)上读写了哪个block,需要注意的是,这里面的block是不是我们说的文件系统的block,是硬件层面的block,可以看做是扇区。每个扇区大小512B,绝大部分的文件系统block都是4K,所以从扇区推算文件系统block只要除以8就可以了,比如60177696的文件系统block是7522212。

2、debugfs

接下来可以使用debugfs来查看该文件的inode以及文件名。

Debugfs exists as a simple way for kernel developers to make information available to user space.

这里用到的debugfs很简单,其余命令可以man。

mount -t debugfs none /sys/kernel/debug--查看dm-0设备lvdisplay|awk '/LV Name/{n=$3} /Block device/{d=$3; sub(".*:

dump的文件 查看pg_详解linux查看磁盘读写信息--blockdump、blktrace、systemtap相关推荐

  1. linux 内存 参数,linux free命令参数及用法详解(linux查看内存命令)

    linux free命令参数及用法详解(linux查看内存命令) 2019年05月31日 | 萬仟网科技 | 我要评论 free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段 ...

  2. linux 查看网络流量来源_详解Linux查看实时网卡流量的几种方式

    在工作中,我们经常需要查看服务器的实时网卡流量.通常,我们会通过这几种方式查看Linux服务器的实时网卡流量. 1. sar -n DEV 1 2 sar命令包含在sysstat工具包中,提供系统的众 ...

  3. linux中whoami命令的作用是,linux whoami命令参数及用法详解(linux查看登陆用户名)

    linux whoami命令参数及用法详解(linux查看登陆用户名) 2019年05月31日 | 萬仟网科技 | 我要评论 whoami 命令显示登录名.与使用命令 who 并指定 am i 不同, ...

  4. Linux初始化内存盘黑屏,详解linux内存磁盘初始化技术.doc

    详解linux内存磁盘初始化技术 详解linux内存磁盘初始化技术 /5502266.html 关键词: HYPERLINK "/tag/initrd" \n _blankinit ...

  5. linux quotacheck命令参数及用法详解---Linux系统管理磁盘配额命令

     功能说明:检查磁盘的使用空间与限制. 语 法:quotacheck [-adgRuv][文件系统...] 补充说明:执行quotacheck指令,扫描挂入系统的分区,并在各分区的文件系统根目录下 ...

  6. linux系统分配文件夹内存,详解Linux系统内存知识及调优方案

    内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁.计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大.内存作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器 ...

  7. linux ifconfig命令参数及用法详解--linux查看配置网卡命令

    ifconfig 是一个用来查看.配置.启用或禁用网络接口的工具,这个工具极为常用的.可以用这个工具来临时性的配置网卡的IP地址.掩码.广播地址.网关等.也可以把 它写入一个文件中(比如/etc/rc ...

  8. linux打开文件命令_详解Linux中3个文件查找相关命令

    来自:民工哥技术之路 1.which命令 我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索: which  查看可执行文件的位置. whereis 查看文件的位置. ...

  9. linux命令如何查看dns,详解Linux系统使用dig/nslookup命令查看dns解析的方法

    今天主要介绍一下怎么去使用dig/nslookup命令查看dns解析.下面,我们一起来看. 一.dig命令 Dig是一个在类Unix命令行模式下查询DNS包括NS记录,A记录,MX记录等相关信息的工具 ...

最新文章

  1. 一份来自大厂算法工程师的求职宝典
  2. 【C++/C】【学习笔记】二分算法——处理“最小却最大”问题
  3. JFinal-layui v1.2.3 发布,极速开发企业应用系统
  4. Linux如何查找大文件或目录总结
  5. Django REST framework (DRF) 不能用property或method排序
  6. 前端之JQuery(二)
  7. C语言中main函数的研究,以及对代码断点调试的研究(王爽老师 汇编语言)
  8. 发布一个biztalk 解析Excel文件到xml消息的管道组件
  9. .net Repeater知识知多少
  10. 去掉前后空格_mysql批量去掉某个字段字符中的空格
  11. bullet HashMap 内存紧密的哈希表
  12. 如何在Mac上恢复已删除或丢失的分区
  13. 游戏设计艺术 第2版 (Jesse Schell 著)
  14. gallery3d 代码分析
  15. 显卡和主板供电接详解图解
  16. jqueryeasyui 事件方法onChange(),onSelect()
  17. 大连考研英语培训百家外语考研英语一如何准备?
  18. android 壁纸存储位置,手机图片去了哪?教你理清照片存放路径(全文)
  19. 北邮信通复试题c语言,北邮计算机考研复试题的C语言解答精选.pdf
  20. 原创 | 大数据学习思维导图

热门文章

  1. Hive 使用问题集锦
  2. 对项目的总结以及对这种教学方式的看法
  3. JAVA中的hasNextInt()方法多次调用只有一个结果的原因
  4. 关于公司通过CMMI3级认证
  5. ComBox 绑定数据库
  6. 微软VC/MFC FAQ(转)
  7. [转载] python中断响应_用Python脚本监测.py脚本的进程状态,并实现中断重启。
  8. 自然语言处理真实项目实战(20170822)
  9. Codeforces 583 DIV2 Robot's Task 贪心
  10. 解决vs2005无法连接sql数据库问题