Memcached在Symfony2 + Doctrine2应用程序的负载下大幅减速

Pez*_*Pez 5 php memcached caching symfony doctrine-orm

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

我在webserver上使用memcached来缓存doctrine元数据和查询,我正在使用amazon的elasticache memcached作为doctrine的结果缓存.

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

在此输入图像描述

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

在此输入图像描述

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

我已经尝试在本地memcache配置文件中增加最大连接数和缓存大小,我还能做些什么来尝试从我的应用程序中删除这个瓶颈?

谢谢一堆 -

Ank*_*ary 2

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

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

请确认是否相同。