Viva,
Existem algumas medidas que podemos tomar para que o SMF seja mais rápido, gastando menos recursos no servidor e proporcionando uma navegação muito mais agradável e eficaz para os seus utilizadores. São acções que permitem aumentar bastante a performance, em especial nos Fóruns que já contam com milhares de mensagens/registos. Este artigo é uma adaptação livre minha do original escrito pelo
Vekseid.
Importante: Pelamordedeus façam cópias de segurança antes de mexer no que está quieto, todas estas operações são testadas e seguras mas pode sempre haver algo que corre mal (principalmente por erro nosso).
1 - Mover os avataresParece ridículo mas pode aumentar muito a performance do SMF. Por defeito, ele trata os avatares como anexos, e por isso, por cada avatar que é carregado, o sistema tem de fazer o load das sessões, das definições e permissões de cada user, o quadro e o theme, para além do avatar em si.
Podemos então movê-los para um novo directório e começar a tratar os avatares como imagens que são
Primeiro criamos uma nova pasta na raiz do Fórum, a que podemos chamar
avs (a pasta avatares já existe, e armazena os avatares públicos)
Vamos ao painel de admin --> Gestor de Anexos --> Opções de avatares
Em "avatares enviados" vamos a "enviar avatares para" e escolhemos "Directório específico". Em baixo colocamos o directório da pasta
avs tal como mostrado na imagem e confirmamos com "Gravar".
Agora, todos os avatares que os utilizadores enviarem, irão para esta nova pasta e não vão gastar tantos recursos. Mas, e os que já existem? Fácil, movem-se também
Basta ir a este endereço:
http://www.omeuforum.com/index.php?action=manageattachments;sa=moveAvatars
Não vão ver nenhuma janela de confirmação em como eles foram movidos. Para se certificarem, basta irem ao vosso directório (por FTP por exemplo), abrirem a pasta
avs e ver lá dentro todas as imagens:
Acabamos de fazer uma importante optimização
Seguinte...
2 - Desactivar verificação de hostnameCom a verificação ligada, cada página que é acedida vem com uma query de DNS reverso. Atenção: desactivar pode tornar as opções de expulsão de utilizadores menos eficiente. Para desactivar:
Painel de admin --> Funcionalidades e Opções --> Opções de Layout
Marcar a caixa para desactivar
3 - Activar compressãoProvavelmente já terão esta activa, mas não perdem nada em verificar isso. Pode aumentar bastante a performance em combinação com o ponto 1, em especial para utilizadores com ligações à Web lentas...
Painel de Admin --> Configurações do Servidor --> Configuração de Funcionalidade
Marcar a caixa "Activar output comprimido"
4 - Optimizar índices, tópicos e mensagensMostrar um número demasiado grande de tópicos no índice de cada Quadro/Sub-Fórum pode tornar o Fórum mais lento, se forem muitas pessoas a carregar páginas em simultâneo. Não existe um número ideal, pessoalmente recomendo entre 40 a 75 tópicos por página e entre 10 a 25 mensagens por cada página de tópico.
Painel de Admin --> Tópicos e Mensagens --> Definições de Tópicos
Configurar a gosto
5 - Utilizar um índice de pesquisa grandeOs índices de pesquisa personalizados associam cada palavra ás mensagens onde as mesmas estão presentes. O SMF coloca-nos 3 opções: criar um índice pequeno, médio ou grande. Utilizando o grande, ocupa um pouco mais de espaço na base de dados (mais 2 bytes por cada entrada), mas o aumento de velocidade é compensatório. Para o fazer:
Painel de admin --> Pesquisa --> Método de Pesquisa
Clicar em "criar índice personalizado"
Escolher a opção Grande. Dependendo do tamanho da base de dados, pode demorar alguns minutos
6 - Marcar tópicos como lidos nos utilizadores inactivosO
Karlbenson criou um script excelente que marca como lidos todos os tópicos em todo o Fórum nos utilizadores inactivos (por defeito, utilizadores que não fazem login no Fórum há 90 dias ou mais). Isto permite reduzir significativamente o nº de entradas na tabela log_topics e com isso aumentar a performance do Fórum.
Façam o download
neste link (necessário estar registado), do ficheiro correspondente à vossa versão do SMF (1.1.x ou 2.x). Enviem para a raíz do SMF (via FTP por exemplo) e de seguida acedam ao endereço:
http://www.omeuforum.com/nomedesteficheiro.php
Dependendo da quantidade de utilizadores registados, este processo pode demorar vários minutos.
Por defeito ele marca como lidos a quem não entra no Fórum há mais de 90 dias, e executa 30 membros de cada vez. Ambos estes valores podem ser alterados, abrindo o script num editor (por exemplo o Notepad++).
7 - São necessários tantos Quadros/Sub-Fóruns?Esta é uma questão que todos os admins de Fóruns devem colocar a si mesmo, independentemente da performance. Um número excessivo de quadros pode dar uma ideia de organização superior, mas na prática é inibidor e reduz a participação dos membros. Para além disso, quantos mais quadros forem carregados no index, mais tempo demora, e mais entradas na base de dados ocupa.
8 - O Calendário é mesmo preciso?A não ser que tenha eventos agendados e necessite mesmo deles na temática da sua comunidade, considere desactivá-lo. Com o calendário activo, o SMF é obrigado a procurar eventos em cada tópico que é aberto, uma e outra vez, o que aumenta a carga no servidor e o tempo de resposta.
Para além destas dicas, existem outros factores que influenciam o tempo de carregamento. Uma das acções que deve ser feita com regularidade são as operações de manutenção que o SMF nos disponibiliza (com especial destaque para a optimização das tabelas da base de dados:
Se o seu layout faz uso de várias imagens, deve procurar comprimir as mesmas para diminui o tempo de carregamento. No caso das JPG, recomendo o programa Irfanview, que comprime bastante sem perdas significativas de qualidade (dependendo claro do valor que atribuímos):
Para outros formatos (PNG, GIF...) e apesar de não ser gratuito, recomendo o que mais uso - Photoshop - nesta opção:
Existem mais medidas de optimização do SMF, mas que já requerem colaboração por parte da empresa de alojamento, como converter as tabelas para
InnoDB. Ficará para outra altura, no entanto podem pesquisar estas definições no
Suporte oficial do SMF.
Dúvidas/problemas podem colocar aqui neste tópico ou
abrir um novo