首页 > mysql io 写非常多怎么办?

mysql io 写非常多怎么办?

如下 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了。

【热门文章】
【热门文章】