Redis Performance Tanks como o número de nós aumenta

1

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.

    
por JayMcTee 13.07.2016 / 15:30

0 respostas