Pergunta

Eu estou tentando melhorar o desempenho sob carga alta, e gostaria de implementar opcode cache.Qual das seguintes devo usar?

Também estou aberto a outras alternativas que caiu em meu radar.

Atualmente em execução em uma das ações, o Debian Etch com o Apache 2, PHP 5.2

[Atualização 1]

HowtoForge instalação links adicionados

[Update 2]

Com base nas respostas e feedback dado, eu testei todos os 3 implementações usando o seguinte Apache JMeter plano de teste no meu aplicativo:

  • Login
  • Acessar Página Inicial

Com cerca de 50 conexões simultâneas, os resultados são os seguintes:

Não Opcode Cache
No Opcode Caching

APC
APC

eAccelerator
eAccelerator

XCache
XCache

Gráfico de desempenho (menor é melhor)
Performance Graph

A partir de resultados acima, eAccelerator tem uma ligeira vantagem em desempenho se comparado com a APC e XCache.No entanto, o que mais importa, a partir dos dados acima é que qualquer tipo de opcode cache dá um enorme salto em desempenho.

Eu decidi usar APC devido a 2 motivos:

  • O pacote está disponível no repositório oficial do Debian
  • Mais funcional painel de controle

Para resumir a minha experiência:

Facilidade de Instalação:APC > eAccelerator > XCache
Desempenho:eAccelerator > APC, XCache
Painel De Controlo:APC > XCache > eAccelerator

Foi útil?

Solução

Eu acho que a resposta pode depender do tipo de aplicativos web que você está executando.Eu tinha que tomar essa decisão me há dois anos e não conseguia decidir entre Zend Optimizer e eAccelerator.

A fim de fazer a minha decisão, eu usei ab (apache bancada) para testar o servidor, e testados três combinações (zend, eaccelerator, tanto em execução) e provaram que o eAccelerator no seu próprio deu o maior desempenho.

Se você tem o luxo do tempo, eu recomendaria fazer testes similares de si mesmo, e tomar a decisão com base em seus resultados.

Outras dicas

Eu uso APC porque era mais fácil para instalar no windows e estou a desenvolver no WAMP.

A integração de APC no PHP6 foi discutido aqui:http://www.php.net/~derick/reunião-notas.html#adicionar-um-opcode cache-para-o-distribuição-apc

E existem instruções sobre a instalação de APC no Debian Etch aqui:http://www.howtoforge.com/apc-php5-apache2-debian-etch

Eu tenho que correr vários pontos de referência eAcclerator, APC, XCache, e Zend Optimizer (mesmo que o Zend é um otimizador, não um cache).

Resultados de Benchmark http://blogs.interdose.com/dominik/wp-content/uploads/2008/04/opcode_wordpress.png

Resultado:eAccelerator é mais rápido (em todos os testes), seguido por XCache e a APC.(O diagrama é o número de segundos para chamar um WordPress página inicial 10.000 vezes).

Zend Optimizer feito tudo o mais lento (!).

Eu não posso dizer com certeza, mas o lugar onde eu estou trabalhando agora é olhar para a APC e eAccelerator.No entanto, isso pode influenciar você - A APC será integrado em uma futura versão do PHP (graças a Ed Haber para o link).

Eu tive um bom sucesso com o eAccelerator (melhoria de velocidade sem carga é perceptível), mas XCache também parece muito promissor.Você pode querer executar alguns testes com cada um, porém, sua aplicação poderá escala de forma diferente em cada um.

Estou usando o XCache por mais de um ano agora, sem problemas em tudo.

Eu tentei mudar para eAccelerator, mas acabou com um monte de falhas de segmentação (é menos indulgente de erros).O grande benefício para eAccelerator é que ele não é apenas um opcode cache, é também um otimizador.

Você deve testar seu aplicativo com cada um deles para se certificar de que não existem quaisquer problemas, e então eu uso apachebench para testá-lo sob carga.

Estes add-ons, historicamente, introduziu muitas estranho bugs para rastrear.Esses insetos podem causar inconsistentes de comportamento que não podem ser diagnosticados facilmente, pois depende de o estado da cache.

Então eu diria:

  1. Não use qualquer um dos acima.Comprar mais de estanho em vez disso, é mais confiável (por exemplo,livre de erros) de modo a aumentar o desempenho.OU
  2. Ir com qualquer um dos acima é o mais robusto, depois de ter testado as calças fora de seu aplicativo.

Mas eu diria:

  1. Certifique-se de que é REALMENTE o código PHP de análise que está a causar problemas de desempenho através da criação de perfil do aplicativo.Eu acho que é muito provável que ele não é - nesse caso, você estaria desperdiçando seu tempo (na verdade, usando o seu tempo negativamente de forma produtiva) por instalar qualquer um deles.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top