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.
fonte
Respostas:
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::start
conforme você apontou corretamente: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.
fonte