来自index_process表的Magento 1.7 / 1.8死锁

时间:2013-09-30 12:06:54

标签: magento database-deadlocks

上周五我把Magento的问题从1.7升级到1.8后,Magento的问题很严重。

问题是我们在MySQL数据库中遇到了很多死锁。

我们的服务器设置是

1负载均衡器 4个Web服务器(Apache,PHP5,APC) 2个MySQL服务器(64 GB Ram,30核SSD HDD) - 1个Master(具有Memcache用于会话) - 1个Slave(具有用于缓存的Redis)

Magento 1.8的死锁率低于1.7,但仍然不时出现......

任何人都对如何解决这个问题有一些好主意。

来自SHOW ENGINE INNODB STATUS的一些数据;

最新检测到的死锁

130930 12:03:35 *(1)交易: TRANSACTION 918EEC3B,ACTIVE 37秒开始索引读取 mysql表在使用1,锁定1 LOCK WAIT 41锁定结构,堆大小6960,50行锁定,撤消日志条目6 MySQL线程ID 51899,OS线程句柄0x7f9774169700,查询ID 2583719 xxx.xx.xxx.47 dbxxx更新 UPDATE m17_index_process SET started_at ='2013-09-30 10:03:36'WHERE(process_id ='8') * (1)等待获得此锁定: RECORD LOCKS空格id 594 page no 3 n bits 208表PRIMARY的索引xxx.xx.xxx.47 dbxxxm17_index_process trx id 918EEC3B lock_mode X锁定rec而不是间隙等待 *(2)交易: TRANSACTION 918EE3E7,ACTIVE 72秒开始索引读取 mysql表在使用1,锁定1 680个锁结构,堆大小80312,150043行锁,撤消日志条目294 MySQL线程ID 51642,OS线程句柄0x7f8a336c7700,查询ID 2586254 xxx.xx.xxx.47 dbxxx更新 UPDATE m17_index_process SET started_at ='2013-09-30 10:03:40'WHERE(process_id ='8') (2)HOLDS THE LOCK(S): RECORD LOCKS空格id 594 page no 3 n bits 208表PRIMARY的索引dbxxxm17_index_process trx id 918EE3E7锁定模式S锁定rec而不是间隙 (2)等待获得此锁定: RECORD LOCKS空格id 594 page no 3 n bits 208表PRIMARY的索引dbxxxm17_index_process trx id 918EE3E7 lock_mode X锁定rec而不是间隙等待 * 我们回滚交易(1)

最诚挚的问候。 拉斯穆斯

1 个答案:

答案 0 :(得分:0)

似乎死锁是由索引进程引起的。尝试禁用自动索引Magento - Programmatically Disable Automatic Indexing

并手动完成。 还尝试禁用cron一段时间,并检查问题是否再次发生。

许多商店管理员可能会从不同的商店中保存产品。在这种情况下,产品保存可能会导致索引进程死锁。

由于