mysql - MySQL Slave 上的复制写负载很重

标签 mysql io database-replication

我们在 Debian 8 上使用 Percona MySQL 5.6 作为电子商务聚合器。为此,有一个主后端服务器执行整个 ETL(处理来自合作伙伴的产品源),还有一个由前端 Web 服务器使用的从属 MySQL 服务器。这是一个包含约 600GB 数据的单一产品数据库。

两台机器都有 RAID10 和数据中心系列 SSD。 Master MySQL 是具有 128GB RAM 的双 Xeon E5,从属 MySQL 是具有 64GB RAM 的单 Xeon E5。我们的问题是,ETL 的 I/O 负载非常大(具有数千个 IOPS),主服务器能够处理 I/O 负载,但从服务器无法跟上复制的速度。大多数工作都是在 ramdisk 中完成的,并且只有真正必要的数据才写入数据库。

从属设备的读取次数多于写入次数,但复制无法跟上。有哪些选项可用于扩展从属设备上的复制写入(即 I/O 负载)?

编辑2016-11-18:通过“选项”,我不仅要求优化MySQL,而且要求完全其他技术或软件可以更好地处理这种情况。

最佳答案

升级到 5.7 有望解决您眼前的问题:http://mysqlhighavailability.com/multi-threaded-replication-performance-in-mysql-5-7/ .

这通常是主设备写入容量耗尽的前兆。您应该尽快开始考虑分片。您可以查看 YouTube 的 vitess.io项目,我是其中的一部分。

关于mysql - MySQL Slave 上的复制写负载很重,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40661427/

相关文章:

mysql - 如何处理 nodejs 与 mysql 的异步?

java - 与 MySQL 和 Netbeans 作斗争

java - read(byte[] b, int off, int len) 和 read(byte [] b) 之间的区别

Cassandra 表需要大量存储空间

java - 在日历日中获得简单的差异

PHP RIGHT JOIN 查询不考虑 null?

file - 如何在文件开头添加一行?

java.io.IOException : The system cannot find the path specified

PostgreSQL 9.1流复制restore_command : special meaning of exit code 255?

mysql - 如何检测MySql服务器故障?