Symfony2:非常慢的会话处理

时间:2017-06-20 22:21:23

标签: php mysql symfony session symfony-2.8

我在生产环境中看到与会话相关的非常慢的MySQL查询,使用Symfony2(2.8.22),AWS EC2和RDS。当我使用默认的Symfony文件系统会话处理程序时,我问了一个类似的问题here。我现在正在使用MySQL处理程序,这可能更成问题。

这些缓慢的查找在12小时左右的时间内特别恶化,在此期间我的应用程序的平均吞吐量大约是每分钟80-90个请求。

其他MySQL查询看起来效果非常好,而且问题似乎与会话处理隔离开来。在其他交易中,我可能会看到MySQL sessions delete,这也占总交易时间的60%-90%。我在上一个问题中的一个答案提出,缓慢可能是由于会话锁定,在这种情况下我会问:我能做些什么来加快这个过程的速度?处理会话约20秒是不可接受的。

我附上了一些来自New Relic的报告,说明了这些问题。 enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

我在这里发布了一些关于我在Symfony问题上发表的评论的内容。

我相信您的应用程序中必须有并发请求,例如Ajax轮询请求。当网站在几个浏览器选项卡或窗口中打开时会发生这些请求,会话被锁定在一个,并且来自其他选项卡的ajax请求被阻止。 如果您没有向控制器中的会话写入任何内容,则应考虑在Ajax调用中添加session_write_close()以释放锁定。