MySQL数据库服务器上的高负载和iowait会导致MySQL INSERTS变慢

我有一个MySQL数据库服务器运行在Ubuntu 12.10 64GB内存,2×3 TB SATA 6 Gb / s硬盘7200转和软件RAID 1和英特尔酷睿i7-3930K。
数据库服务器通过本地networking使用专用1 GBit以太网卡访问。
该数据库大约50 GB,是复制设置中的主数据库。

国际海事组织,有两个问题,导致MySQL查询缓慢:

  1. 即使数据库服务器处于空闲状态,负载总是比较高(> 2)(这不是一个大问题,因为处理器有12个内核,但看起来不太合适)
  2. top显示大约95%的系统处于空闲状态,<1%被使用5%正在等待(见下面的截图)

iotop --only显示大部分磁盘IO是由jdb2 / md2-8生成的,而不是由mysqld生成 – 所以mysqld不应该成为问题 – 但为什么jdb2 / md2-8使用了这么多的资源?

cat /proc/mdstat输出如下内容:

我的问题是:
是什么导致了MySQL性能下降?
这是爱荷华州吗? 什么导致爱荷华州?
它是RAID 1 – 它是用过的硬盘吗?

任何帮助是极大的赞赏!

你正在运行一个日志大量的数据库,就在那里最慢的磁盘。 你在jive2上看到如此之高的iowaits的原因是因为在把ext4日志写在磁盘上的时候很难

要么将磁盘更换为可以跟上的东西(可以想起SSD,所有具有电池caching的常规SAS磁盘都可以工作)和/或开始调整。 当涉及SQL环境中的文件系统调优时,有大量的文档。

一个好的起点是: http : //dev.mysql.com/doc/refman/5.0/en/disk-issues.html

升级到MySQL 5.7后,我遇到了这个问题。

设置“sync_binlog = 0”为我固定。 MySQL在5.7中将默认值从0更改为1。