Memcached在Symfony2 + Doctrine2应用程序

时间:2015-04-29 22:42:33

标签: php symfony caching doctrine-orm memcached

我一直在对我的Symfony2应用程序进行负载测试,我发现的其中一个瓶颈似乎是Memcached。

我在网络服务器上使用memcached来缓存教条元数据和查询,我正在使用amazon的elasticache memcached作为教条的结果缓存。

在没有任何负载的请求中,我的端到端时间是300-350ms,memcached占这些ms中的大约10个

enter image description here

但是,在25个并发请求的负载下,我的总响应速度减慢到大约2500毫秒,其中很大一部分似乎是memcached

enter image description here

39个memcached查询中有34个正在获取classmetadata,其中一些是.1ms而其他的是40或50ms,它似乎很随机。

我已尝试在本地memcache配置文件中增加最大连接数和缓存大小,我还可以尝试从我的应用程序中删除此瓶颈吗?

非常感谢 -

1 个答案:

答案 0 :(得分:2)

网络I / O :检查网络I / O是否存在任何问题。这可能是由于多种原因:

  • 网络带宽非常低。
  • Memcached和您的应用程序/ Web服务器位于不同的区域,memcached完美地返回结果,但I / O时间很长。
  • 从Memcached返回的数据大小非常大,并且在序列化和去序列化上花费了大量时间。如果是这种情况,您可以尝试通过使用更好的序列化和去除化的机制来减小大小 0.1ms到40ms之间响应时间的不一致可能是因为这个原因。

请验证相同。