找出MySQL主从延迟的原因

  

步骤1:iostat查看IO情况

, iostat - x 1查看IO情况,哪个磁盘的IO负载较高,接下来我们就来定位具体的负载来源

步骤2:iotop定位负载来源进程

, iotop的本质是一个python脚本,从proc中获取线程的IO信息,进行汇总。

,从下图可以看出大部分的IO来源都来自于mysqld进程,因此可以确定dfa的负载来源是数据库

Step3 pt-ioprofile定位负载来源文件

, pt-ioprofile的原理是对某个pid附加一个strace进程进行IO分析。

以下是摘自官网的一段警示:

,然而,它通过附加strace流程使用ptrace(),这将使它运行非常缓慢,直到strace分离。除了冻结服务器之外,也有一些风险的进程崩溃或执行strace后严重分离,甚至strace不分离干净,让过程在熟睡的状态。因此,这应该被视为一种侵入性的工具,不应使用alt="找出MySQL主从延迟的原因">

  

找出MySQL主从延迟的原因