Quanto é que o agente de PHP Newrelico adiciona?
o agente de monitorização do PHP funciona como extensão. Se bem entendi, liga-se a outro serviço de agregação do sistema, que filtra os dados e os empurra para a nuvem Nova-Relíquia.
Isto significa simplesmente que funciona de forma transparente debaixo do capô. No entanto, isso é realmente verdade? Qualquer serviço de monitorização, análise de perfis ou API adiciona algumas despesas para toda a pilha. A extensão em si é de 0,6 MB, o que se soma a cada processo de php, isso não é muito assim minha preocupação é bastante CPU e IO.a imagem mostra a utilização da CPU em uma produção EC2 t1.micro instâncias com agente Newrélico (top blue one) e w/o agente (outras linhas)
-
O que é que o NewRelic realmente faz para causar a sobrecarga adicional?
Quais são os outros lados negativos ao usá-lo?
2 answers
A sua quilometragem pode variar com base nas Configurações, na sua base de código de sites em particular, etc...
A sobrecarga adicional que estão a ver é menos a memória usada, mas o rastreamento e o perfil do vosso código php e a recolha de dados analíticos sobre ele, bem como o pedido de definição de DB. Basicamente, algumas despesas adicionais ligadas a cada chamada de função php. Você vê despesas gerais semelhantes se deixou o Xdebug ou o ZendDebugger a funcionar numa máquina ou a traçar perfis. Qualquer módulo utilizará alguns recursos, uma vez esse gancho profundamente para a análise de perfis pode ser o mais caro, mas eu vi Nova relíquia tem configurações de configuração para discar de volta como intensivamente os perfis de TI, então você pode ser capaz de clarear é atingido mais do que dizer Xdebug.
Tudo o que foi dito, com o módulo PHP compartilhado newrelic carregado com a configuração e configuração padrão de seu site, a latência de resposta geral do servidor da minha empresa subiu cerca de 15-20% em toda a linha quando ligamos para todas as nossas máquinas de produção. Só estou a falar de ... o tempo que leva para o php-fpm gerar uma resposta inicial. Nosso site é http://www.nara.me os Serviços newrelic-daemon e newrelic-sysmon também funcionam, mas duvido que tenham algum impacto no tempo de resposta. Não me interpretes mal, adoro uma nova relíquia, mas o sucesso na minha situação específica não me faz querer manter o módulo PHP a funcionar em todas as nossas máquinas equilibradas. Provavelmente vamos mantê-lo ligado a uma máquina o tempo todo. Nós planeamos manter a coisa do sysmon vai 100% e manter o módulo desativado, caso precisemos dele para resolução de problemas. O meu conselho é o seguinte:- embrulhe todas as chamadas para novas funções relíquia em {[[0]} para que o seu código possa correr sem erros se o novo módulo relíquia não estiver carregado
- Se tiver vários servidores idênticos atrás de um loadbalancer a partilhar o mesmo código, só active o módulo php numa imagem para salvar o desempenho. Você pode manter o material do sysmon funcionando se você usar uma relíquia nova para presente.
- Se tiver apenas um servidor, só active o módulo PHP partilhado quando precisar dele--quando estiver a traçar o perfil do seu código ou mysql, a menos que um sucesso de desempenho de 10-20% não seja
Uma outra coisa a lembrar-se de sua principal fonte de informação é a nova relíquia website: eles são pagos pelo número de máquinas que você está monitor, então não espere que eles para convencê-lo a não usá-lo em nada menos do que 100% de suas máquinas, mesmo se ele não for necessário. Acho que um dos FAQ's ou blogs declare basicamente você deve esperar algum impacto de desempenho, mas se você usá-lo um pretendido e corrigir os problemas que você vê a partir dele, você deve recuperar a latência perdida. Concordo, mas acho que quando resolveres os problemas, limita a exposição ao menor número necessário de servidores.