Tempo de resposta longo para Mage_Core_Model_Session_Abstract_Varien :: start

15

Então, eu tenho notado na New Relic em muitos sites, muitas das nossas longas páginas estão acontecendo devido a Mage_Core_Model_Session_Abstract_Varien :: start. Eu fiz algumas pesquisas e realmente não vi mais ninguém falando sobre isso.

Usamos Nginx, PHP FPM, Redis para cache e Memcache para sessões. Algumas de minhas idéias são que talvez seja outra coisa que está demorando uma eternidade e parece que carregar a sessão é o problema. Ou, de alguma forma, há algum código personalizado que adiciona muitos dados à sessão, causando enormes sessões.

Eu não tenho tanto conhecimento em termos de sessões e como elas são gerenciadas, no entanto, encontrei alguns artigos falando sobre o bloqueio de sessões. No entanto, acho que as pessoas não abririam tantas páginas ao mesmo tempo.

Algumas dessas cargas são de 20 a 30 segundos. Estou curioso para saber se alguém notou isso ou teve mais conhecimento sobre como analisar esses tipos de solicitações longas devido a sessões.

dan.codes
fonte
11
Percebi o mesmo comportamento com o Redis usado como armazenamento de sessão. Também não há pistas de por que isso acontece.
2
Você já conseguiu rastrear a causa disso? Eu tenho uma configuração muito semelhante (Redis para cache, memcached para sessões) e recentemente começamos a usar a New Relic para rastrear o desempenho. Estamos capturando alguns rastros de mais de 20 segundos que parecem ser causados ​​por algo no MCMSAV :: start como você estava vendo. Infelizmente, não consigo entender mais profundamente, uma dica de ferramenta diz: "Visibilidade mais profunda não está disponível porque essas classes e métodos não são instrumentados com a configuração atual do agente PHP". Ainda tenho que investigar mais. Alguma ideia?
BrianVPS
11
@BrianVPS Eu nunca encontrei nada. Continua sendo um mistério para mim e nunca foi dado mais tempo para encontrá-lo. Eu ainda o vejo em todos os projetos. Você já encontrou alguma coisa?
dan.codes
11
Não sei se encontramos alguma causa, mas não a vi recentemente. Fizemos alterações significativas no site e aparamos muita gordura. Desativei alguns módulos principais não utilizados, excluí vários atributos, categorias e produtos não utilizados. Desde então, as coisas são melhoradas em todas as frentes. Não sei se alguma delas estava relacionada, mas, em geral, livrar-se de coisas desnecessárias parece ajudar significativamente o Magento. É um sistema poderoso, mas inchado, com muito código que muitos sites não precisam. Livrar-se do excesso é muito útil.
BrianVPS 2/16/16
@ BrianVPS Eu tenho exatamente o mesmo problema que você teve (rastreios de mais de 20 segundos que parecem ter sido causados ​​por algo no MCMSAV :: start). Você achou alguma solução?
Denis Spalenza 8/11

Respostas:

7

Provavelmente, isso está relacionado a um fenômeno relacionado às sessões do sistema de arquivos. Apesar do que você está relatando usando o Mecached para sessões, só vi isso pessoalmente quando na verdade estava usando o sistema de arquivos.

Isso já foi abordado aqui:

/magento//a/3721/336

De fato, uma captura de tela de um cachegrind revela o ponto exato em que a inicialização da sessão está demorando uma quantidade excessiva de tempo, Mage_Core_Model_Session_Abstract_Varien::startconforme você apontou corretamente:

insira a descrição da imagem aqui

No encadeamento referenciado, houve a sugestão de que esse efeito possa ser diminuído com um armazenamento de sessão na memória - mas não existem dados concretos que conheço para apoiar a teoria. Se você estiver realmente usando o memcached, é lógico que o bloqueio de sessão no nível do PHP impediria que futuras solicitações para o armazenamento da sessão fossem concedidas até que o bloqueio fosse liberado.

Em geral, isso geralmente é visto apenas em solicitações que exigem acesso às informações da sessão; portanto, a arquitetura do seu tema de front-end será benéfica para limitar a quantidade de acesso necessária para evitar bloqueios potenciais quando um usuário tiver outra guia ou outra solicitação de longa execução em andamento ao decidir para se afastar.

HTH, Saúde.

philwinkle
fonte