Ahm*_*med 8 mysql performance mysql-5.7 amazon-rds slow-log
我们面临一个问题,在某些时候,提交的时间超过一秒钟。这样做的时间间隔是不固定的。我们的应用程序发送了数千次提交,但在某些情况下,具有完全相同时间戳的提交会变慢。
同时慢查询日志中没有任何其他查询。关于如何进一步调查的任何指示?
我们在 Amazon RDS 上使用 MySQL 5.7.16。
小智 8
由于您的提交正在停滞,因此可以很安全地假设您正在运行innodb_flush_log_at_trx_commit=1(请参阅此处的 #4),因此您可以做的一个明显更改是切换到innodb_flush_log_at_trx_commit=0,但这可能不是您的正确选择 - 请参阅上一个链接。
在任何情况下,COMMITs通常都不要因为服务器上的其他活动(如查询)而停顿,除非其他活动将某种互斥锁锁定太久。
如果我不得不在没有任何进一步证据的情况下猜测,我会说您的写入如此密集,以至于 MySQL 无法使用自适应检查点刷新足够快,因此它超过了日志容量的 75% 并启动了尖锐的检查点(这会阻止服务器活动短时间)。
有几种快速的方法可以让 MySQL 处理写得更好(除了上面已经提到的一种):
否则,查看来自 AWS 的磁盘活动、服务器当前写入的数据量将非常有用(您可以使用Log sequence number两次连续show engine innodb status\G运行之间的增量来计算它)
还有其他方法,但为此,我需要有关实际工作量的更多详细信息。