使用Cm_RedisSession之后的会话锁定
我们使用Magento 1.9.2.4中的默认Cm_RedisSession模块切换到Redis作为会话存储。部署后,许多客户经历了非常长的页面加载时间(> 20-30秒)。对于Redis-Server,我们在Tideways中使用AWS ElastiCache(m3.large) (类似于Newrelic),在跟踪中看到了这个瓶颈: 在阅读了有关此问题的更多信息并查看了Cm_RedisSession日志后,我发现来自客户的会话已被锁定,并且经过更多研究后,由于会话锁定的改进,我决定将Cm_RedisSession升级到1.14。 使用最新版本,该问题已最小化,因为该锁定现在将在5秒后正确断开。但是仍然有5秒的加载时间。 我有两种理论。 一些请求死亡,因此没有任何session_close()调用,因此该锁将不会被释放: 我启用了每个日志(php-fpm,nginx和magento),并看着它们,直到该错误在Tideways中出现给客户,但在此特定时间范围内没有错误 多个脚本尝试读取/写入同一会话: 我创建了一个脚本,该脚本使用相同的前端cookie并行调用同一页面一百次,但是没有出现锁。 在这一点上,我不知道为什么会出现此锁,更糟糕的是,我无法在本地的Maschine或登台系统上重现它。 有没有人暗示或解决我该如何解决这个问题? 编辑:有人试图禁用Cm_RedisSession中的锁定吗? 编辑:与1.15相同的问题 编辑:大多数带锁的请求都是ajax请求。但是我还是无法复制它。 $ php5-fpm -v PHP 5.5.32-1+deb.sury.org~trusty+1 (fpm-fcgi) (built: Feb 5 2016 10:10:42) Copyright (c) 1997-2015 The PHP Group Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by …