如下 iotop 的信息,到了非常恐怖的程度,慢查询日志里看到很多简单的关联 SQL 耗时上十秒,而对应的字段都有建立索引,表数据也就数百到一万行的样子。我不是运维,以前优化的事都是运维干,实在搞不懂这个问题出在哪,求教了!
Total DISK READ: 10.58 M/s | Total DISK WRITE: 61.76 M/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
15194 be/4 mysql 0.00 B/s 168.60 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
13975 be/4 mysql 0.00 B/s 946.25 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
14024 be/4 mysql 0.00 B/s 395.70 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
589 be/4 root 0.00 B/s 5.22 M/s 0.00 % 99.99 % [flush-8:0]
14083 be/4 mysql 0.00 B/s 27.53 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
15645 be/4 mysql 0.00 B/s 206.45 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
14123 be/4 mysql 0.00 B/s 168.60 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
13962 be/4 mysql 0.00 B/s 168.60 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
15195 be/4 mysql 0.00 B/s 564.31 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
14341 be/4 mysql 0.00 B/s 182.37 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
15675 be/4 mysql 0.00 B/s 223.66 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
14978 be/4 mysql 0.00 B/s 3.44 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
14041 be/4 mysql 0.00 B/s 134.20 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
14634 be/4 mysql 0.00 B/s 189.25 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
14023 be/4 mysql 0.00 B/s 106.67 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
14717 be/4 mysql 0.00 B/s 51.61 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
15720 be/4 mysql 0.00 B/s 161.72 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
15875 be/4 mysql 0.00 B/s 113.55 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
14920 be/4 mysql 0.00 B/s 134.20 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
14508 be/4 mysql 0.00 B/s 92.90 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
15071 be/4 mysql 0.00 B/s 27.53 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
15473 be/4 mysql 0.00 B/s 223.66 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
15378 be/4 mysql 0.00 B/s 82.58 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
14227 be/4 mysql 0.00 B/s 137.64 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
14346 be/4 mysql 0.00 B/s 82.58 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
14681 be/4 mysql 0.00 B/s 27.53 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
14891 be/4 mysql 0.00 B/s 110.11 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
14713 be/4 mysql 0.00 B/s 27.53 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
14261 be/4 mysql 0.00 B/s 44.73 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
15539 be/4 mysql 0.00 B/s 27.53 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
14035 be/4 mysql 0.00 B/s 134.20 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
14913 be/4 mysql 0.00 B/s 24.09 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
14082 be/4 mysql 0.00 B/s 113.55 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
14397 be/4 mysql 0.00 B/s 371.62 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
14532 be/4 mysql 0.00 B/s 182.37 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
14462 be/4 mysql 0.00 B/s 72.26 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
14699 be/4 mysql 0.00 B/s 147.96 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
14006 be/4 mysql 0.00 B/s 86.02 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
14399 be/4 mysql 0.00 B/s 48.17 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
14381 be/4 mysql 0.00 B/s 58.50 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
14001 be/4 mysql 0.00 B/s 34.41 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
14045 be/4 mysql 0.00 B/s 75.70 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
15234 be/4 mysql 0.00 B/s 261.51 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
15545 be/4 mysql 0.00 B/s 86.02 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
15087 be/4 mysql 0.00 B/s 27.53 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
14638 be/4 mysql 0.00 B/s 178.93 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
15449 be/4 mysql 0.00 B/s 134.20 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
14039 be/4 mysql 0.00 B/s 258.07 K/s 0.00 % 99.99 % mysqld --basedir=/us~lib/mysql/mysql.sock
补充一点,查询以 SELECT 为主,写并不多,表引擎用的 MyISAM
光顾着找程序里的写操作去了,其实 slow_query 日志已经能发现问题了。后来发现问题就是出在关联查询上,原来的 join_buffer_size,sort_buffer_size 等缓冲配置得太小了,改大后就OK了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。