从系统方面入手的话,参考MySQL 调优基础(四) Linux 磁盘IO
https://www.2cto.com/database/201510/445288.html
iotop -k -u mysql (-k 表示KB,-u mysql表示显示mysql用户的所有进程的IO)
iostat -d -k1|grep sda10
iostat -d -x -k 1
可以看到磁盘的平均响应时间<5ms,磁盘使用率>80。磁盘响应正常,但是已经很繁忙了
因为磁盘IO的操作分成了4个层面,所以IO的优化也可以从这四个方面入手:
1)正对mysql系统的调优,还需要选择正确的IO调度算法,如果是SSD,选择NOOP调度算法,如果是磁盘,那么选择deadline调度算法;
2)针对mysql还显然可以通过maser-slave来读写分离进行磁盘IO优化。
3)另外增大内存,可以对更多的磁盘文件进行缓存,也能减轻IO压力。
4)还有文件系统的挂载选项 noatime, nodiratime也能减轻IO压力,另外选择正确的文件系统也能提高磁盘的tps. mysql数据库推荐使用XFS文件系统。
目录
show engine innodb status\G; 解读
mysql关于IO/内存方面的一些优化
http://www.cnblogs.com/chenpingzhao/p/5119161.html
原理解析的最清楚
https://www.2cto.com/database/201510/445288.html
read/write/fsync与fread/fwrite/fflush的关