Como tornar o PHP mais escalável no Unix Apache

1

Estou procurando maneiras gratuitas / de baixo custo para tornar o PHP rodando em nossos servidores Unix Solaris (sob o Apache) mais escalável e confiável. Você recomenda a versão gratuita do Zend Server? Existem outras soluções?

Isto é para um site que ocasionalmente recebe mais de 2 milhões de acessos por dia com 10 GB de transferência de dados no mesmo período. Obrigado.

    
por Alex 04.11.2010 / 14:16

3 respostas

2

Isso depende do seu gargalo atual e do comportamento atual do PHP.

  • Se os seus scripts PHP são relativamente pequenos, respondem rápido e não têm dependências externas (como consultas SQL, caso em que o servidor de banco de dados pode facilmente ser o verdadeiro gargalo), você geralmente não precisa de nenhum técnicas extravagantes. Ajustar corretamente os limites do processo no httpd.conf e, talvez, jogar em um cache de código operacional, como o XCache , pode ser uma boa ideia.

  • Se o seu site estiver usando strongmente o banco de dados, o cache apropriado e o memcached podem ser seus amigos. Não apenas instale cegamente o memcached - ele se torna necessário apenas sob carga grande ou se suas consultas SQL estão demorando muito tempo, em cujo caso o memcached pode ajudar bastante. Se você tiver apenas bancos de dados pequenos e consultas SQL sempre rápidas, o memcached não ajudará muito, se necessário. 2 milhões de visitas por dia é uma boa quantia, mas para um servidor decente não é enorme, a menos que seu site seja pesado > (ou o material Daily WTF :-)) no lado do recurso / código.

  • O conteúdo do seu site pode ser armazenado em cache? Ele fornece coisas como notícias que mudam apenas ocasionalmente ou são MUITO dinâmicas, como o Facebook? Se puder ser armazenado em cache, considere o uso de um proxy front-end, como o Squid , ou se você puder pagar e seu negócio realmente precisar dele, alguma solução de hardware.

por 04.11.2010 / 14:49
1

Se você ainda não estiver usando um sistema de cache de opcode como o Zend, isso provavelmente seria uma grande vitória, mas você precisa executar alguns perfis para descobrir onde o gargalo é para a sua plataforma, para escolher um solução.

Quanto de IO está sendo realizado? Quão ocupados são os processadores? Como é o seu uso de memória? O site é apoiado por um banco de dados? Em caso afirmativo, esse banco de dados está no mesmo host? Qual é a utilização do host do banco de dados? Que largura de banda existe entre o servidor da Web e o servidor de banco de dados? etc.

    
por 04.11.2010 / 14:45
1

Você pode considerar experimentar a APC. Recentemente instalamos em um servidor em nossa empresa. O servidor serve um site altamente carregado e o resultado foi muito bom - quase 40% de melhoria na carga.

Sobre o uso de soluções diferentes: NGINX + PHP-FPM é considerado uma boa alternativa ao Apache ( Nós estamos realmente usando também em nossa empresa e funciona muito bem, mas eu não posso fazer uma comparação completa com o Apache neste momento)

    
por 04.11.2010 / 15:31