专栏首页爱可生开源社区第03问:磁盘 IO 报警,MySQL 读写哪个文件慢了?

第03问:磁盘 IO 报警,MySQL 读写哪个文件慢了?

问题:

磁盘 IO 报警,说 IO 饱和了。

那么 MySQL 读写哪个文件慢了?binlog?redo log?还是哪张表?

构造环境:

根据先前的 实验 02,构造环境,模仿 binlog 的磁盘 IO 慢。

实验:

想观察 IO 相关的行为,需启用 performance_schema 的 instrument(生产者)和 consumer(消费者)。

将 performance_schema 的配置重置为默认配置,IO 相关的 instrument(生产者)在默认配置里开启。

启用 waits 相关的 consumer(消费者)

将已记录的性能数据清零

向 MySQL 施加压力

在另一个 session 中,观察最近的 IO 行为。

可以看到 binlog 的刷盘 IO 明显比其他操作慢,符合我们构造的实验场景。这样我们就快速定位了哪个文件的 IO 变慢了。

有了线程号,我们还可以定位其对应的操作:

结论:

我们通过 sys.x$latest_file_io,找到最近的 IO 操作的记录,进行了排序。

需注意:

1. 这里不用 sys.latest_file_io 的原因是无法对操作延迟进行排序。

以 sys 中, 以 x$ 开头的视图,是原始数据。

不以 x$ 开头的视图,是给人类看的视图(比如时间显示会带单位,显示成 123 ns)。

2. sys.x$latest_file_io 视图涉及到两张表:performance_schema. events_waits_history_longperformance_schema. threads 如果某个线程退出,就不会出现在 sys.x$latest_file_io 视图。所以 sys.x$latest_file_io 不是"最近的 IO 操作记录",而是"当前活跃线程的最近的 IO 操作记录"。


关于 MySQL 的技术内容,你们还有什么想知道的吗?赶紧留言告诉小编吧!

本文分享自微信公众号 - 爱可生开源社区(ActiontechOSS),作者:黄炎

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 第02问:怎么模仿磁盘 IO 慢的情况?

    将块设备 /dev/loop3 映射成带延迟的设备(对于读操作和写操作都延迟 100ms)

    爱可生开源社区
  • 新特性解读 | MySQL 8.0.22 任意格式数据导入

    资深数据库专家,专研 MySQL 十余年。擅长 MySQL、PostgreSQL、MongoDB 等开源数据库相关的备份恢复、SQL 调优、监控运维、高可用架构...

    爱可生开源社区
  • 技术分享 | 使用 RAND() 函数过程中发现的诡异 Bug 分析

    爱可生研发团队成员,负责数据库管理平台相关项目,.Net 技术爱好者,长期潜水于技术圈。

    爱可生开源社区
  • 图解BIO、NIO、AIO、多路复用IO的区别

    ②同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的NIO并...

    肉眼品世界
  • BIO、NIO、AIO

    宇宙之一粟
  • Java中IO和NIO的本质和区别

    终于要写到java中最最让人激动的部分了IO和NIO。IO的全称是input output,是java程序跟外部世界交流的桥梁,IO指的是java.io包中的所...

    程序那些事
  • python并发编程

    py3study
  • Linux中IO多路复用机制

    之前的面试有问到主线程在 ActivityThread 里初始化 Looper 后调用了 Looper.loop() 这个死循环为什么不会阻塞主线程,当时回答因...

    萬物並作吾以觀復
  • 重新理解IO模型

    本文试图理清楚几种IO模型的根本性区别,同时分析了为什么在Linux网络编程中最好要用非阻塞式IO?

    cyhone
  • Redis 单线程模型介绍

    redis 将所有数据放在内存中,内存的响应时长大约为 100 纳秒,这是 redis 的 QPS 过万的重要基础。

    CoderJed

扫码关注云+社区

领取腾讯云代金券