我在Amazon RDS中运行一个为网站提供服务的MySQL数据库。其中一个表中大约80MB的数据每小时更换一次。我将数据加载到另一个表中,然后使用重命名交换表,然后删除另一个表。
大部分时间一切都很好。当每小时更新一次时,CPU峰值大约为10%并回到2%或3%,这是正常站点流量的CPU消耗。
然而,偶尔(无模式),CPU在更新时几乎达到100%,并且在更新完成很久之后一小时后保持非常高,直到下一次更新。更新需要几秒钟。在整个小时内,到站点的流量是正常的。此外,在此期间,show processlist
为空 - 没有卡住进程。
有几次,我在小时结束前手动触发更新,CPU恢复正常。
我的问题是:假设数据加载存在效率低下的问题,错误的查询或更新会导致CPU在完成执行后长时间保持高电平吗?
下次发生时我会运行SHOW ENGINE INNODB STATUS
。当我这样做时,我应该寻找什么?
一些细节如果有用: