Pergunta

Para um site como o reddit com lotes de up / down votos e muitos comentários por tópico que eu deveria ir com?

Lighttpd / PHP ou Lighttpd / CherryPy / Genshi / SQLAlchemy?

e para a base de dados que seria dimensionar melhor / ser MySQL mais rápido (4,1 ou 5?) Ou PostgreSQL?

Foi útil?

Solução

Eu não posso falar para a questão MySQL / PostgreSQL como eu tenho experiência limitada com Postgres, mas meu projeto de pesquisa de mestrado foi sobre sites de alto desempenho com CherryPy, e eu não acho que você vai ficar desapontado se você usar cherrypy para o seu site. Ele pode facilmente escalar para milhares de usuários simultâneos em hardware commodity.

Claro, o mesmo poderia ser dito para PHP, e eu não sei de qualquer referência razoáveis ??comparando PHP e CherryPy desempenho. Mas se você estava se perguntando se CherryPy pode lidar com um site de alto tráfego com um grande número de solicitações por segundo, a resposta é definitivamente sim.

Outras dicas

A configuração ideal seria perto de este :

caching

Em suma, nginx é um rápido e leve webserver / frente-proxy com um módulo único que vamos ele buscar dados diretamente do memcached 's store RAM, sem bater o disco, ou qualquer webapp dinâmico. Claro, se o URL da solicitação não foi já em cache (ou se tiver expirado), a solicitação prossegue para o webapp como de costume. A parte genial é que quando o webapp gerou a resposta, uma cópia do mesmo vai para Memcached, pronto para ser reutilizado.

Tudo isso é perfeitamente aplicável não apenas para páginas web, mas ao Ajax de consulta / respostas.

No artigo, os servidores de 'voltar' é http e, especificamente, falar sobre vira-lata. Seria ainda melhor se a parte de trás foram FastCGI e outros (mais rápido?)-Quadro; mas é muito menos crítico, uma vez que a equipe / memcached nginx absorver a maior parte da carga.

Note que se seu esquema de url para o tráfego AJAX é bem desenhado (REST é melhor, IMHO), você pode colocar a maior parte da DB bem no memcached e qualquer POST (que passará para o app) pode preventivamente atualizar o cache.

Sobre a questão DB, eu diria escalas PostgreSQL melhor e tem melhor a integridade dos dados de MySQL. Para um pequeno site MySQL pode ser mais rápido, mas pelo que eu ouvi ele diminui significativamente à medida que o tamanho do banco de dados cresce. ( Nota:. Eu nunca usei MySQL para um grande banco de dados, então você provavelmente deve ter uma segunda opinião sobre sua escalabilidade ) Mas PostgreSQL definitivamente escamas bem, e seria uma boa escolha para um alto tráfego site.

vai precisar de mais dados. Jeff tinha alguns artigos sobre os mesmos problemas ea resposta foi que esperar até que você bateu um problema de desempenho.

para começar - que está hospedando eo que eles têm disponíveis? o que é a sua casa em conjuntos de habilidades talento? Você vai ser a contratação de uma empresa de fora? o que eles recomendam? projeto novo w / a equipe dispostos a aprender um novo quadro?

segunda coisa é fazer alguns protótipos - como é a interface vai funcionar. quais os dados que ele precisa de carga e persistir? a idéia é manter o tráfego entre a web e db para baixo lado. por exemplo. Não existem tagarelas com muitas consultas. etc.

Uma vez que você tem uma idéia melhor dos requisitos de dados e fluxo - em seguida, o trabalho sobre o projeto de banco de dados. há uma abundância de regras a seguir, mas um dos melhores é seguir regras de normalização (sim eu sou um cara db porquê?)

Agora você tem um par de páginas build - executar os testes. você está tendo um problema? Sim, agora olhar para o que é. Página servindo ou db puxa? Medir em seguida, escolher um curso de ação.

Eu iria com nginx + php + xcache + PostgreSQL

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top