- DISK 100% BUSY,谁造成的?
- 来源:高效运维
iostat等命令看到的是系统级的统计,比如下例中我们看到/dev/sdb很忙,如果要追查是哪个进程导致的I/O繁忙,应该怎么办?# iostat -xd
...
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sdb 0.00 0.00 6781.67 0.00 3390.83 0.00 1.00 0.85 0.13 0.13 0.00 0.13 85.03
dm-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
dm-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
dm-2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
...
进程的内核数据结构中包含了I/O数量的统计:struct task_struct {
...
struct task_io_accounting ioac;
...
};
可以直接在 /proc//io 中看到:# cat /proc/3088/io
rchar: 125119 //在read(),pread(),readv(),sendfile等系统调用中读取的字节数
wchar: 632 //在write(),pwrite(),writev(),sendfile等系统调用中写入的字节数
syscr: 111 //调用read(),pread(),readv(),sendfile等系统调用的次数
syscw: 79 //调用write(),pwrite(),writev(),sendfile等系统调用的次数
read_bytes: 425984 //进程读取的物理I/O字节数,包括mmap pagein,在submit_bio()中统计的
write_bytes: 0 //进程写出的物理I/O字节数,包括mmap pageout,在submit_bio()中统计的
cancelled_write_bytes: 0
//如果进程截短了cache中的文件,事实上就减少了原本要发生的写I/O
我们关心的是实际发生的物理I/O,从上面的注释可知,应该关注 read_bytes 和 write_bytes。请注意这都是历史累计值,从进程开始执行之初就一直累加。如果要观察动态变化情况,可以使用 pidstat 命令,它就是利用了/proc//io 中的原始数据计算单位时间内的增量:# pidstat -d 2 2
Linux 3.10.0-229.14.1.el7.x86_64 (bj71s060) 11/16/2016 _x86_64_ (2 CPU)
12:30:15 PM UID PID kB_rd/s kB_wr/s kB_ccwr/s Command
12:30:17 PM 0 14772 3362.25 0.00 0.00 dd
12:30:17 PM UID PID kB_rd/s kB_wr/s kB_ccwr/s Command
12:30:19 PM 0 14772 3371.25 0.00 0.00 dd
另外还有一个常用的命令 iotop 也可以观察进程的动态I/O:Actual DISK READ: 3.31 M/s | Actual DISK WRITE: 0.00 B/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
14772 be/4 root 3.31 M/s 0.00 B/s 0.00 % 61.99 % dd if=/de~lag=direct
1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % systemd -~rialize 24
2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd]
...
pidstat 和 iotop 也有不足之处,它们无法具体到某个硬盘设备,如果系统中有很多硬盘设备,都在忙,而我们只想看某一个特定的硬盘的I/O来自哪些进程,这两个命令就帮不上忙了。怎么办呢?可以用上万能工具SystemTap。比如:我们希望找出访问/dev/sdb的进程,可以用下列脚本,它的原理是对submit_bio下探针:#! /usr/bin/env stap
global device_of_interest
probe begin {
device_of_interest = $1
printf ("device of interest: 0x%x\n", device_of_interest)
}
probe kernel.function("submit_bio")
{
dev = $bio->bi_bdev->bd_dev
if (dev == device_of_interest)
printf ("[%s](%d) dev:0x%x rw:%d size:%d\n",
execname(), pid(), dev, $rw, $bio->bi_size)
}
这个脚本需要在命令行参数中指定需要监控的硬盘设备号,得到这个设备号的方法如下:# ll /dev/sdb
brw-rw----. 1 root disk 8, 16 Oct 24 15:52 /dev/sdb
Major number(12-bit): 8 i.e. 0x8
Minor number(20-bit): 16 i.e. 0x00010
合在一起得到设备号:0x800010
执行脚本,我们看到:# ./dev_task_io.stp 0x800010
device of interest: 0x800010
[dd](31202) dev:0x800010 rw:0 size:512
[dd](31202) dev:0x800010 rw:0 size:512
[dd](31202) dev:0x800010 rw:0 size:512
[dd](31202) dev:0x800010 rw:0 size:512
[dd](31202) dev:0x800010 rw:0 size:512
...
结果很令人满意,我们看到是进程号为31202的dd命令在对/dev/sdb进行读操作。来源:http://linuxperf.com/?p=40&from;=groupmessage
VMUNIX
扫一扫下载订阅号助手,用手机发文章
赞赏
长按二维码向我转账
受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。
已同步到看一看
取消
发送
我知道了
朋友会在“发现-看一看”看到你“在看”的内容
确定
已同步到看一看写下你的想法
最多200字,当前共字
发送
已发送
朋友将在看一看看到
确定
写下你的想法...
取消
发布到看一看
确定
最多200字,当前共字
发送中
微信扫一扫
使用小程序
取消
允许
即将打开一个新页面
取消
允许
社会
-
-
- P大这点P事,谁受了益,谁受了伤?
- 文/洛水钟鸣 (识局微信公共账号zhijuzk) ▼ P大这点P事,本来没什么可说的。 不就P大点事吗,这么牛的学校,如果连这点脸都丢不起,还有什么资格吹牛。 可是后来仔细捋了捋,发现P大居
- 识局
-
-
-
- 小八||新一代小花大乱斗,怎样才能弯道超车?
- 前阵子,我们聊到了“霸屏少年”,感受到荧幕上越来越多新人冒头,流量小生们又是新一轮的洗牌。 不仅是小生,这几年间小花、小小花也是层出不穷,竞争非常激烈,涌现了各种新生代“四小花旦”的排列组合。 郑爽
- 蓝小姐和黄小姐
-
-
-
- 工作的终极奥义是快乐……
- 沉浸在数字时代的耀眼炫光和希望中,人们很容易忘记,原始的人类欲望和实现商业目标同样至关重要。 例如,现在,公司正在对技术行业进行大规模投资,这些技术可以使他们的员工更紧密地联系到彼此、客户和其他利益
- 译言
-
-
-
- 为什么你越忙越穷?
- 01 从一个室友的故事 开始说起 我有一位大学室友,曾经活成了我梦想中的样子。 在我刚毕业为找工作焦头烂额的时候,她已经开始了在澳洲农场半打工半旅游的“间隔年”,一整年她的朋友圈光耀夺目。
- Tiny4Voice
-
-
-
- 废掉一个人最隐蔽的方式,就是让他一直做最擅长的事
- 古人有一句话:一命,二运,三风水,四积德,五读书。读书,可以帮我们更好地理解前面四者。 我们的老朋友书单君,就是这样一个被读书改变的80后。他曾经在《南方周末》做过6年记者,后来创业开公号。 怎么
- warfalcon
-
-
-
- 一个不必写书的产品经理,写了一本好书
- 对于一个壮年产品经理来说,最保险的策略就是尽量不要出声,只用自己的作品来说话。这是因为做产品有时是风云际会到了某个点上,用直觉和理智一起去做的判断,这是个很立体的东西,这个东西一旦想要线性的表达,就容
- 二爷鉴书
-
-
-
- 全球投资谈:美ETF周流失173亿美元,低波动率基金继续受捧
- 因为种种原因,《华尔街见闻》App最近暂时歇了,正在进行恢复方面的沟通,基金哥在那里有一款质量和评价不错的ETF课程。现在,本着对用户负责的态度,见闻已经将其从见闻App转入其旗下的见识服务中,请有意
- 美股基金策略
-
-
-
- 世界上第一本《持续行动》,现在在我手上
- 持续力 公众号ID:scalerstalk 个人微信号:escalers (可加Scalers个人微信交流) 关注 ScalersTalk 成长会 2019 年火热招募中,参见《用持续行动突破成
- ScalersTalk成长持续论
-
-
-
- 不仅是婚姻,她们连恋爱也懒得谈
- 在生育率排名全球垫底的韩国,单身是一门好生意。 城市可以保障独自生活在城市的女孩儿们的一切衣食住行、娱乐消遣,只要有钱就行。由于短期内没有家庭的负担,这些姑娘们可以把赚的钱全部花在自己身上。她们极具
- 人物
-
-
-
- 你的老板从没跟你说过实话
- 这是 新世相 的第 1027 篇文章 Sayings: 你可能也有所察觉了,这个夏天,有一种职业再次流行起来了: —— 霸道总裁。 有冷酷型的,不爱说话那种,勾勾手指就把人喊来了。 还有
- 新世相
-
-
-
- 送网红戴森进县镇:苏宁零售云背后的“张近东式下乡”
- 所有人都没有想到,被北上广深时尚青年们追捧的网红戴森也走进入县镇,这怎么可能? 数据显示,2018年(1-8月),在零售云全国门店所有小家电的销售总额排名中,前十名中有两款戴森产品入围,分别为吹风机H
- 李瀛寰
-
-
-
- DISK 100% BUSY,谁造成的?
- iostat等命令看到的是系统级的统计,比如下例中我们看到/dev/sdb很忙,如果要追查是哪个进程导致的I/O繁忙,应该怎么办? # iostat -xd ... Device: r
- 高效运维
-
-
-
- 原创丨升级!“港独”暴徒要放火杀人了,决不能再姑息!
- 罗曼电动牙刷热销7万+,购任意款+1元换购价值58元益生菌牙膏2支活动持续进行中,好牙刷配好牙膏,口腔问题不再担心。戳图抢购! 升级!“港独”暴徒要放火杀人 - 来自占豪 - / 10:20 又升级了
- 占豪
-
-
-
- “我住两千万的大房子,凭什么要自己修马桶?”
- 你做我的朗读者 我做你的摆渡人 戳蓝字一键关注 摆渡人 ☾ 每晚21:39 无论你在哪里,请记得打开手机。 我住两千万的大房子,凭什么… - 来自摆渡人 - / 12:57 ♪ 点上方绿标即可收听
- 摆渡人
-
-
-
- 《哪吒》票房破35亿,我们是时候冷静地思考些问题了
- 来源|影视独家;作者|泺清 虽然《哪吒》有诸多可圈可点之处,但是细细想来,其仍然有一些有待改进的地方,这些也是如今国漫在制作中存在的共性问题。 “没有大家说的那么牛,也没有很糟糕”,这是笔者看完《
- 广电独家
-