作为节点数量增加的Redis高性能坦克

奇怪的问题。 负载均衡器后面有6个节点。 他们是运行Ubuntu的高规格VPS。 在另一个节点上,我们运行Redis。 更多的节点运行MySQL。 整个LAMP设置主机Magento。

从基于文件的caching转换到Redis中央caching,我们开始逐个更改每个Magento节点,以便使用Redis槽Cm_Cache_Backend_Redis由于Redis被两台服务器使用,一切运行良好。 所以我们决定切换剩余的4台服务器。 但是,然后性能开始坦克大的时间。 New Relic证实了这个性能回落高达300%。 应用程序响应时间从合理的900-1200ms到3K + ms。 页面加载时间变得可怕,跳跃至less2秒,经常更多。 在大数据量(200个用户遍布6个服务器)的高峰负载下,回归更加深刻。

在痕迹中,我们开始看到Redis一切不好。

Category Slowest components Count Duration % Custom Varien_Simplexml_Element::asNiceXml 578 19,200 ms 33% Custom Varien_Simplexml_Element::extendChild 673 10,200 ms 18% Custom Cm_RedisSession_Model_Session::read 1 5,070 ms 9% Custom Varien_Simplexml_Element::extend 76 4,380 ms 8% Custom Varien_Simplexml_Element::hasChildren 69 2,690 ms 5% Custom Mage_Core_Model_Config::loadModulesConfiguration 1 2,270 ms 4% Remainder Remainder 1 13,700 ms 24% Total time 57,500 ms 100% 

XML模块和核心configuration加载变得缓慢,通常很快的Redis会话现在立即变慢。 整个过程慢慢地慢慢爬行。

Redis服务器是我们现在不直接控制的默认Ubuntu安装。 客户端在我们所控制的6个节点上。 现在,它使用内置的Credis独立客户端,我们打算用phpredis PECL客户端进行交换,这应该会提高性能。

其他一切都按照https://github.com/colinmollenhour/Cm_Cache_Backend_Redis

希望客户互换会有所作为,但与此同时,我们渴望听到进一步的build议。 为什么2个节点工作得很好,但是它开始窒息了6? 这听起来像客户端或服务器端的麻烦吗?

你的想法是非常受欢迎的。