Problema estranho. Temos 6 nós atrás de um balanceador de carga. São VPSs de alta especificação que executam o Ubuntu. Em um nó separado, rodamos o Redis. Nós adicionais executam o MySQL. Toda a instalação do LAMP hospeda o Magento.
Transição de um cache baseado em arquivo para o cache central do Redis, nós começamos a mudar cada nó do Magento inicialmente um por um para usar o Redis através do Cm_Cache_Backend_Redis. Com o Redis sendo usado por dois servidores, tudo roda bem. Então decidimos mudar os 4 servidores restantes também. Mas, então, o desempenho começa a aumentar muito. A regressão de desempenho é de até 300%, conforme confirmado pela New Relic. O tempo de resposta do aplicativo vai de 900-1200ms a 3K + ms. Tempo de carregamento da página fica horrível, salta pelo menos 2 segundos, muitas vezes mais. Sob carga pesada de pico (200 usuários espalhados em 6 servidores), a regressão é ainda mais profunda.
Nos traços, começamos a ver que nem tudo está bem com o 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%
O carregamento do módulo XML e do core config torna-se lento, as sessões do Redis, que normalmente são rápidas, agora se tornam lentas instantaneamente. O lote todo rasteja lentamente.
O servidor Redis é uma instalação padrão do Ubuntu que não controlamos diretamente agora. O lado do cliente nos 6 nós que controlamos. Agora, ele usa o cliente autônomo integrado do Credis, que pretendemos trocar com o cliente phpredis PECL, que deve dar um pouco de um aumento de desempenho.
Todo o restante é o padrão de acordo com o link
Espero que a troca de clientes faça toda a diferença, mas enquanto isso, estamos ansiosos para ouvir mais sugestões. Por que dois nós funcionam bem e rápido, mas começa a sufocar em 6? Isso soa como um problema do lado do cliente ou do servidor para você?
Seus pensamentos são muito bem vindos.
Tags performance php redis magento