分享一款mysql数据库数据文件IO监控神器--pt-ioprofile

概述针对IO密集型应用做系统调优的时候,我们通常都需要知道系统cpu 内存 io 网络等系统性能 和 使用率,结合应用本身的访问量,以及 MySQL的性能指标来综合分析 。比如说:我们将系统压力情况分为三个阶段:从用户端开始到web server,再到mysql 。
【分享一款mysql数据库数据文件IO监控神器--pt-ioprofile】1. 客户量:我们可以从web App的访问log,查看访问量(通常会记录时间),
2. 系统指标: 对比dstat、 IOStat/ mpstat pidstat 等搜集对应的系统性能指标,
3. mysql: 使用mysql status ,或者 mycheckpoint等工具搜集mysql的cache , query等数据 。
我们很容易搜集到了系统层、设备层的IO数据,但是缺少一个工具来告诉你应用打开了多少文件,文件读写比例,执行了多少次fsync,是随机读写还是顺序读写,另外,mysql是一个庞大而精心设计的系统,使用了一些列的方案如table cache, thread cache 等来提升IO,我们比较容易获得他的缓存量,命中率,文件数,但是却不好直观的知道它到底对物理IO设备读写了多少数据 。到底是数据库的那部分操作使IO这么忙,或者说到底是哪个表,哪个数据文件的IO动作最频繁,以及他到底是什么样的系统调用 。
所以今天主要分享一个实用工具帮助我们获取这些信息--pt-ioprofile 。


    推荐阅读