我们在 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/