Que dicas você tem para acelerar (desempenho de) uma instalação do MediaWiki?

8

Temos uma instalação do MediaWiki e estamos recebendo reclamações de que está ficando mais lenta. Como podemos aumentar a velocidade / desempenho?

Tenho uma dica (que adicionarei abaixo), mas estou realmente interessado em ouvir mais. De preferência uma dica por resposta.

Restabelecer Monica - Adeus SE
fonte
1
Aqui está um link útil que encontrei: dom.as/2007/01/26/mediawiki-performance-tuning
Reinstate Monica - Goodbye SE
Ou o mais abrangente e recente mediawiki.org/wiki/Manual:Performance_tuning
Nemo

Respostas:

4

Em vez de armazenar em cache a memória, especialmente se o seu site é de tamanho pequeno a médio, o tamanho total de todas as páginas hmtl não é um problema - uma solução simples é apenas ativar o cache do arquivo.

http://www.mediawiki.org/wiki/Manual:File_cache

Passei várias horas hoje tentando ativar qualquer uma das soluções recomendadas de cache de memória da mediawiki na minha hospedagem compartilhada (no bluehost) e não encontrei nenhuma maneira de fazer isso, e então descobri essa opção e resolveu todos os problemas.

Este é o wiki com o cache de arquivos ativado:

http://robertinventor.com/bmwiki

Antes do armazenamento em cache do arquivo, levava alguns segundos para carregar a maioria das páginas e, às vezes, muito mais, até minutos, de acordo com os registros do Google Analytics.

Robert Walker
fonte
4

Algumas ótimas dicas aqui . Para mim, o que fez a maior diferença (de 8 segundos para 0 no IIS 7) foi ativar o cache e a alteração $wgDBserver = "127.0.0.1";(do host local). Por algum motivo, o host local estava sendo resolvido pela rede.

Aqui está o post completo de Jaded:

  1. Um dos maiores impactos, reduzindo a carga de 15 segundos para 6 ou 7, foi ativar o cache e a aceleração do Mediawiki, conforme detalhado neste post: http://www.charlesrcook.com/archive/2012/09/12/ mediawiki-iis7-output-caching-and-friendlyshort-urls.aspx . Em resumo, ative o seguinte no seu arquivo localsettings.php do Mediawiki:

    $wgCacheDirectory = "c:\your\path\to\cache";
    $wgFileCacheDirectory = "c:\your\path\to\cache ";
    $wgEnableSidebarCache = true;
    $wgUseFileCache = true;
    $wgShowIPinHeader = false;
    $wgEnableParserCache = true;
    $wgCachePages = true;
    
    $wgMainCacheType = CACHE_ACCEL;
    $wgMessageCacheType = CACHE_ACCEL;
    $wgParserCacheType = CACHE_ACCEL;
    $wgMemCachedServers = array();
    

    Verifique se as contas IUSR e IIS_IUSR locais têm permissões "Modify" no diretório de cache, caso contrário os arquivos e diretórios do mecanismo de cache do Mediawiki não poderão gravar neles.

  2. Fiz algumas pequenas alterações no cache do PHP usando o Wincache, mas isso quase não teve nenhum efeito - ative e configure-o se desejar da perspectiva do PHP, mas não espere um grande salto. O mesmo vale para o cache de consultas do MySQL - meu site Wiki é relativamente pequeno, com uso mínimo, portanto, o cache de consultas do MySQL não foi uma grande melhoria.

  3. A unha final no caixão para acelerar o site foi modificar a configuração $ wgDBserver no meu arquivo Mediawiki LocalSettings.php. Foi definido como "Localhost", e este post http://forums.iis.net/t/1153459.aspx/3/10 sugeriu que o uso de "Localhost" no Windows 7 em diante e o Server 2008 em diante comece a envolver o IPv6 no a consulta da página. A camada de transporte precisava resolver o host local e estava negociando entre um endereço IPv4 e um endereço IPv6, que o PHP e o MySQL precisavam resolver antes de permitir a renderização da página. Parece que este ainda não é um protocolo integrado totalmente suportado, portanto, a configuração de $ wgDBserver no endereço IPv4 de "127.0.0.1" levou a renderização de 6 segundos para apenas 1 segundo - problema resolvido!

Sonic Soul
fonte
3

Ative o cache no LocalSettings.php. Faça isso adicionando / alterando esta linha:

$wgMainCacheType = CACHE_ACCEL;

Consulte a página Manual: Cache e este mwusers .

Restabelecer Monica - Adeus SE
fonte
2

Antes de tudo, você precisa ter certeza de que usa o Apache Server '' '. O Mediawiki é mais lento se você instalou no Windows Server ou no IIS. Se estiver no Windows Server, mova as pastas de aplicativos para o servidor Linux. Guia do Windows e Linux Server para Mediawiki

Viola
fonte
0

Isso pode não ser relevante nas versões atuais do MW, mas verifique a configuração do php mbstring.func_overload. Eu configurei para 2 (como requisito para uma pequena instalação do zabbix) e prejudicou o desempenho de uma instalação de 1,12 de MW no mesmo servidor.

SmallClanger
fonte
valeu! Irá verificar.
Restabeleça Monica - Adeus SE
de acordo com: mediawiki.org/wiki/PHP_configuration mbstring.func_overload Esta opção causa erros e pode corromper os dados imprevisivelmente; O MediaWiki se recusará a instalar se esta opção estiver ativada. Então eu acho que isso não é aplicável.
Reinstate Monica - Goodbye SE
0

Use um php opcode cacher, verifique se o dB não é o gargalo, considere usar um http cacher como verniz.

3molo
fonte
você pode me dar um pouco mais de detalhes aqui? Por exemplo, links, como saber se o banco de dados é o gargalo, o que é um http cacher? Eu não sou tão conhecedor dos detalhes do back-end.
Reinstate Monica - Goodbye SE
Google para mysqltuner.pl, ou use mysql-tuner.sh em day32.com/MySQL , eles informarão se você precisa aumentar os buffers, se as consultas estão ficando lentas, etc. O Varnish é um serviço do tipo proxy reverso que pode armazenar em cache páginas da web dinâmicas, a curva de aprendizado é um pouco íngreme, mas é um serviço de ponta, por isso vale a pena conferir. A ordem de como você deve investigar é (uma parte do óbvio, como taxa de transferência de rede) provavelmente 1) opcode cacher 2) determina como o db está fazendo / executando e 3) verniz.
3molo
O Mediawiki ainda tem um artigo sobre cache com verniz! mediawiki.org/wiki/Manual:Varnish_caching
3molo
Esqueceu-se de mencionar que mediawiki também sugere o uso memcached para armazenar em cache entre o banco de dados e no próprio site, consulte mediawiki.org/wiki/Memcached
3molo