步骤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主从延迟的原因">