pt-ioprofile
pt-ioprofile 是 pt-tools 中的一款性能分析工具,可以监听 MySQL 进程,输出 IO 操作的次数/总时间/平均时间。
其原理如下:pt-ioprofile 用 strace 监听 MySQL 的系统调用,筛选其中与 IO 相关的系统调用,进行统计。同时 pt-ioprofile 也获取 lsof 的输出,将其与 strace 的结果匹配,得知系统调用操作了哪个 MySQL 文件。一次插入MySQL,对redo log(innodb层产生的,只记录该存储引擎中表的修改)进行了 3 次刷盘(fsync);对binlog(在存储引擎的上层产生的,不管是什么存储引擎,对数据库进行了修改都会产生二进制日志)进行了 1 次刷盘(fdatasync),二进制日志先于redo log被记录