Dicas de desempenho para uma grande base de usuários [closed]

4

Estou preparando um site com muitos usuários (100.000 ou mais). Como a saída depende da relação do usuário atual com alguns tipos de postagem personalizados e taxonomias, um cache estático não ajuda muito.

Além de usar uma tabela separada para os usuários e servir arquivos estáticos de um domínio sem cookies - o que mais eu posso fazer para melhorar o desempenho?

Por exemplo: devo usar InnoDB ou MyISAM? Sugestões sobre índices?

Atualizar

Obviamente, eu não estava claro o suficiente. Desculpe.

Todos os usuários estão logados. Sempre. Ninguém mais pode ver mais do que a página inicial. O site oferece material pago para cursos on-line.

Estou procurando apenas dicas relacionadas a uma grande base de usuários. Otimizações básicas de desempenho geral, como compactação, carregamento lento de scripts, sprites etc., são úteis, mas não é isso que eu estou querendo.

    
por fuxia 21.01.2011 / 16:14

3 respostas

4

Você pode usar o "W3 Total Cache" , que não é um sistema de cache de arquivos estáticos. No entanto, ele usa coisas como cache de opcode, memcached e cache de objetos para diminuir o tempo de carregamento da página. O APC, ou outro opcache, seria um bom acréscimo ao seu servidor, bem como o uso de um httpd leve em vez de um Apache inchado.

Forçar o GZIP nos usuários também é considerado uma boa idéia, já que a maioria das pessoas que não recebem arquivos GZIP podem realmente receber arquivos GZIP. Os cabeçalhos de solicitação podem ser gerenciados por firewalls, etc.

No entanto, 80% do carregamento da página é geralmente de front-end, por isso é algo em que você vai querer trabalhar. "W3 Total Cache" faz a concatenação de CSS e JavaScript, bem como a minimização dos arquivos. É a melhor opção se você tem corretamente que você é JavaScript e arquivos CSS para aparecer apenas nas páginas onde eles são necessários. No entanto, a maioria dos sites não, por isso sua configuração extra necessária não é nada, mas irritante. Além disso, a redução de arquivos geralmente resulta em quebra de material, portanto, basta fazer a concatenação dos arquivos.

O uso de arquivos estáticos em um domínio sem cookies economizará alguns ms, mas para obter economias reais no carregamento da página, o uso de um CDN economizará aproximadamente 100 ms por item. Além disso, o uso de vários domínios para veicular os arquivos aumentará o carregamento da página para navegadores mais antigos, que têm limites sobre quantas solicitações de arquivos simultâneas podem ser feitas por domínio.

Você também pode querer usar http://smush.it para economizar no tamanho das imagens sem perda de qualidade. ( enlace script para executar arquivos locais através do smushit. enlace para executar imagens no S3 através do smushit.

O InnoDB deve ser usado se seus comentários excederem o número de seus posts. Caso contrário, MyISAM pode realmente ser mais rápido.

    
por Backie 21.01.2011 / 16:31
1

Talvez você possa mudar para o mySQL 5.5 com o padrão innodb padrão. Também é uma mudança para usar um balanceador de carga e separar as tabelas do usuário em outro banco de dados, servidor extra.

    
por bueltge 04.02.2011 / 09:20
0

Concorde com o que o @Backie escreveu.

O wp-supercache também possui suporte experimental para cache de objetos usando APC e suporte a CDN. Eu encontrei objeto de cache pode resultar em comportamento estranho de (mal?) Escrito plugins.

O MyISAM normalmente será mais rápido, a menos que você tenha muitas gravações (principalmente comentários), pois ele só bloqueia uma página, não a tabela inteira.

Certifique-se de ativar o registro de consultas lentas do MySQL e verificar onde estão seus afunilamentos reais e, em seguida, use EXPLAIN para descobrir se você precisa adicionar índices, etc. Esta página é uma boa introdução se você não usou o EXPLAIN antes.

O script mysqltuner também pode ser útil para descobrir onde você pode precisar ajustar sua configuração do MySQL.

    
por anu 21.01.2011 / 18:18