Excesso de carga no servidor
O excesso de carga no servidor pode dever-se a inúmeras causas, e caracteriza-se pela incapacidade do servidor de responder em tempo útil a todos os pedidos que recebe.
É este o caso na maioria das situações em que o servidor não aceita a conexão e naquelas em que o servidor demora vários minutos a responder.
A causa mais comuns para esta situação é a existência de um ou mais componentes da página cujo processamento demora. Este componente mais lento pode ser uma query mais complexa à base de dados, dados que são pedidos pelo servidor a outros servidores, ou mesmo uma ou mais parte do site que implicam algum processamento mais complexo.
A existência de muitos componentes, mesmo que bastante simples, também implicam mais acessos à base de dados, mais tempo de processamento e, consequentemente, um maior tempo de resposta.
Este problema raramente é antecipadamente óbvio, pois o site pode ser servido com bastante rapidez quando o tráfego é pouco, mas quando submetido a um maior volume de tráfego os tempos de resposta começam a aumentar exponencialmente até deixar de ser possível aceder ao servidor.
Isto não acontece porque cada pedido demore mais tempo a ser processado, mas porque os pedidos se vão acumulando à espera que os processadores do servidor estejam livres para os servir.
A primeira é utilizar um serviço que aloje uma grande quantidade de blogs, como o Blogger ou os Blogs do Sapo. Estes serviços estão dimensionados para suportar uma grande quantidade de blogs, e o aumento de tráfego que para o seu blog individualmente representa um grande pico de tráfego, para estes serviços representam apenas um ligeiro acréscimo, que estão mais do que preparados para receber.
A segunda alternativa passa por fazer previamente alguns testes de carga ao seu servidor.
Isto assumindo que tem um servidor dedicado só para si. Se tem o seu site ou blog num serviço de hosting partilhado não faça estes testes sob pena de ver a sua conta cancelada, e o seu site off-line em consequência dos seus actos (e ainda antes de chegar à homepage do Digg).
Existem várias formas de fazer este tipo de testes.
Duas ferramentas que pode utilizar e que se encontram disponíveis para os principais sistemas operativos são o ab e o wget.
Por exemplo, para fazer 100 pedidos à homepage do seu site, 10 de cada vez, pode utilizar o comando:
O ab faz os pedidos de acordo com os parâmetros por si fornecidos, e no final apresenta-lhe algumas estatísticas acerca dos tempos necessários para terminar cada pedido e a totalidade da tarefa.
O wget tem, no entanto, algumas funcionalidade interessantes, e das quais podemos tirar partido para testar o nosso site. A opção mais interessante é a -m, que permite fazer mirror de um site, pedindo em sequência todos os URLs do site.
Este teste é importante porque muitas vezes os CMS têm sistemas de cache, que lhe permitem ter uma maior capacidade de resposta quando um url é pedido várias vezes, pelo que pedir diferentes URLs do site nos permite saber como o servidor irá reagir se os novos utilizadores que chegam ao site o acharem interessante e começarem a navegar por todo o site.
Pode fazer mirrors do seu site criando uma directoria vazia, colocando-se dentro dela e correndo o comando
Na directoria onde está será criada uma estrutura de ficheiros idêntica à que existe no seu site, com todos os ficheiros.
Durante todo este tempo deve, obviamente, monitorizar a carga que existe no seu servidor, utilizando, por exemplo no caso de ser um servidor Linux, o top, ou outra ferramenta da sua preferência.
Nota: Refiro mais uma vez que estes testes apenas devem ser efectuados quando o servidor lhe esteja completamente dedicado, ou depois de contactar o seu fornecedor e apenas se este autorizar os testes.
Acima de tudo, certifique-se que não está a utilizar recursos externos ao seu servidor que sejam pedidos pelo servidor, como sejam feeds RSS que são processados em tempo real pelo servidor, qualquer tipo de chamada de procedimentos remotos ou outras funcionalidade desse tipo.
Experimente fazer os testes utilizando um template mais simples de que goste, e a que poderá recorrer em caso de necessidade, se isso resolver o problema.
No entanto, não actualize logo o seu software para as novas versões do software, especialmente se tiverem uma grande quantidade de novas funcionalidade, pois essas novas funcionalidades podem ter problemas de performance, que serão corrigidas ao fim de apenas algumas semanas.
Se, em contrapartida, utiliza um software desenvolvido por si, o post PpW - MySQL, Where e Índices talvez seja do seu interesse. Reduzir o número do funcionalidades e criar ou utilizar um sistema de cache também podem ser opção a considerar.
Mas se pretende criar um blog mais profissional, com um domínio próprio, e o sistema que utiliza actualmente não resistiria se o seu blog conseguisse atingir a primeira página do Digg, então talvez optar por uma dos vários softwares mais utilizadores seja mesmo uma opção que deve considerar seriamente.
Isto é especialmente verdade se o software que utiliza actualmente foi desenvolvido por si, e não tem confiança na sua capacidade de o optimizar.
Procure um pouco, verifique que software utilizam os maiores bloggers e depressa chegará á conclusão de quais são as melhores opções do momento. Escolha aquela que lhe parecer mais interessante. A maioria deles são opensource, ou têm uma forma de você as testar antes de comprar, pelo que não perde nada em experimentar várias.
Mas não basta tentar escrever um post. Tente criar mesmo um pequeno blog, e utilize-o durante uns dias, quanto mais não seja apenas para você ler.
Se tem bons conhecimentos dos servidores que utiliza, com alguns testes e alguma leitura talvez consiga melhor bastante a capacidade de resposta do servidor.
Se não tem esses conhecimentos, pagar 100 ou 200 euros a alguém que faça esses ajuste nas configurações pode valer bem o dinheiro que custo.
Quando mudar de servidor tenha em consideração que há varias coisas que podem influenciar a performance do seu site, nomeadamente a memória do servidor, a velocidade do processador e o número de processadores.
Este valor, obviamente, é o que acho aconselhável, e significa que em situações de pico o servidor vai ter normalmente uma carga inferior a 25% da sua capacidade.
Se sem situações especiais a carga do seu servidor está acima dos 25%, mesmo nos momentos de maior tráfego nos seus sites, isso significa que não conseguirá suportar situações especiais, como ser promovido à primeira página do Digg.
Se a carga normal do servidor está acima dos 50%, então está mais do que na altura de mudar de servidor para algo mais potente. Ou então dividir os seus sites por vários servidores. Urgentemente.
Se utiliza uma solução de hosting partilhado, então reze. Reze para que o seu blog não seja promovido ou para que o servidor ainda esteja pouco ocupado. É mais provável que consiga a primeira.
É este o caso na maioria das situações em que o servidor não aceita a conexão e naquelas em que o servidor demora vários minutos a responder.
A causa mais comuns para esta situação é a existência de um ou mais componentes da página cujo processamento demora. Este componente mais lento pode ser uma query mais complexa à base de dados, dados que são pedidos pelo servidor a outros servidores, ou mesmo uma ou mais parte do site que implicam algum processamento mais complexo.
A existência de muitos componentes, mesmo que bastante simples, também implicam mais acessos à base de dados, mais tempo de processamento e, consequentemente, um maior tempo de resposta.
Este problema raramente é antecipadamente óbvio, pois o site pode ser servido com bastante rapidez quando o tráfego é pouco, mas quando submetido a um maior volume de tráfego os tempos de resposta começam a aumentar exponencialmente até deixar de ser possível aceder ao servidor.
Isto não acontece porque cada pedido demore mais tempo a ser processado, mas porque os pedidos se vão acumulando à espera que os processadores do servidor estejam livres para os servir.
Detectar para Prevenir
Só existem duas formas de prevenir este tipo de situações.A primeira é utilizar um serviço que aloje uma grande quantidade de blogs, como o Blogger ou os Blogs do Sapo. Estes serviços estão dimensionados para suportar uma grande quantidade de blogs, e o aumento de tráfego que para o seu blog individualmente representa um grande pico de tráfego, para estes serviços representam apenas um ligeiro acréscimo, que estão mais do que preparados para receber.
A segunda alternativa passa por fazer previamente alguns testes de carga ao seu servidor.
Isto assumindo que tem um servidor dedicado só para si. Se tem o seu site ou blog num serviço de hosting partilhado não faça estes testes sob pena de ver a sua conta cancelada, e o seu site off-line em consequência dos seus actos (e ainda antes de chegar à homepage do Digg).
Existem várias formas de fazer este tipo de testes.
Duas ferramentas que pode utilizar e que se encontram disponíveis para os principais sistemas operativos são o ab e o wget.
ab
O ab (Abreviatura de Apache Benchmark) é uma aplicação de benchmark de servidores/aplicações web, que é instalada juntamente com o apache, e que certamente terá no seu ambiente de desenvolvimento (assumindo que tem um, baseado em apache). O ab permite pedir um qualquer url a um servidor várias vezes, e também fazer vários pedidos em simultâneo.Por exemplo, para fazer 100 pedidos à homepage do seu site, 10 de cada vez, pode utilizar o comando:
ab -n 100 -c 10 http://www.seusite.com/
O ab faz os pedidos de acordo com os parâmetros por si fornecidos, e no final apresenta-lhe algumas estatísticas acerca dos tempos necessários para terminar cada pedido e a totalidade da tarefa.
wget
O wget é uma ferramenta da GNU, e que serve para fazer o download de URLs.O wget tem, no entanto, algumas funcionalidade interessantes, e das quais podemos tirar partido para testar o nosso site. A opção mais interessante é a -m, que permite fazer mirror de um site, pedindo em sequência todos os URLs do site.
Este teste é importante porque muitas vezes os CMS têm sistemas de cache, que lhe permitem ter uma maior capacidade de resposta quando um url é pedido várias vezes, pelo que pedir diferentes URLs do site nos permite saber como o servidor irá reagir se os novos utilizadores que chegam ao site o acharem interessante e começarem a navegar por todo o site.
Pode fazer mirrors do seu site criando uma directoria vazia, colocando-se dentro dela e correndo o comando
wget -m -nH http://www.oseusite.com/
Na directoria onde está será criada uma estrutura de ficheiros idêntica à que existe no seu site, com todos os ficheiros.
Durante todo este tempo deve, obviamente, monitorizar a carga que existe no seu servidor, utilizando, por exemplo no caso de ser um servidor Linux, o top, ou outra ferramenta da sua preferência.
Nota: Refiro mais uma vez que estes testes apenas devem ser efectuados quando o servidor lhe esteja completamente dedicado, ou depois de contactar o seu fornecedor e apenas se este autorizar os testes.
Corrigir estes problemas
Se durante estes testes detectar que o seu site começa a responder com excessiva lentidão há três coisas que pode fazer no sentido de melhor a performance do seu site.Template mais simples
Caso o software que está a utilizar tenha themes ou templates que permitam incluir funcionalidade adicionais, como plugins, verifique se não está a utilizar uma quantidade excessiva de plugins. Verifique também se não está a utilizar uma theme que mostre uma quantidade excessiva de informação que seja retirada da base de dados.Acima de tudo, certifique-se que não está a utilizar recursos externos ao seu servidor que sejam pedidos pelo servidor, como sejam feeds RSS que são processados em tempo real pelo servidor, qualquer tipo de chamada de procedimentos remotos ou outras funcionalidade desse tipo.
Experimente fazer os testes utilizando um template mais simples de que goste, e a que poderá recorrer em caso de necessidade, se isso resolver o problema.
Actualize ou corrija o software
Quando se utiliza uma aplicação que é utilizada por mais pessoas e existem problemas de performance, esses problemas são normalmente corrigido ao fim de algum tempo. Por isso actualize o seu software à medida que novas revisões forem sendo disponibilizadas.No entanto, não actualize logo o seu software para as novas versões do software, especialmente se tiverem uma grande quantidade de novas funcionalidade, pois essas novas funcionalidades podem ter problemas de performance, que serão corrigidas ao fim de apenas algumas semanas.
Se, em contrapartida, utiliza um software desenvolvido por si, o post PpW - MySQL, Where e Índices talvez seja do seu interesse. Reduzir o número do funcionalidades e criar ou utilizar um sistema de cache também podem ser opção a considerar.
Mudar de software
Se o que pretende é criar (ou ter) um blog pessoal, e não pretende que ele cresça, então provavelmente nem chegou até aqui. E se chegou, talvez a escolha de um dos muitos serviços de blogs disponíveis na internet talvez seja a solução para si.Mas se pretende criar um blog mais profissional, com um domínio próprio, e o sistema que utiliza actualmente não resistiria se o seu blog conseguisse atingir a primeira página do Digg, então talvez optar por uma dos vários softwares mais utilizadores seja mesmo uma opção que deve considerar seriamente.
Isto é especialmente verdade se o software que utiliza actualmente foi desenvolvido por si, e não tem confiança na sua capacidade de o optimizar.
Procure um pouco, verifique que software utilizam os maiores bloggers e depressa chegará á conclusão de quais são as melhores opções do momento. Escolha aquela que lhe parecer mais interessante. A maioria deles são opensource, ou têm uma forma de você as testar antes de comprar, pelo que não perde nada em experimentar várias.
Mas não basta tentar escrever um post. Tente criar mesmo um pequeno blog, e utilize-o durante uns dias, quanto mais não seja apenas para você ler.
Ajustar as configurações do servidor
Ajudar as configurações do servidor HTTP e de base de dados podem ajudar a melhorar em muito a capacidade de resposta do seu site.Se tem bons conhecimentos dos servidores que utiliza, com alguns testes e alguma leitura talvez consiga melhor bastante a capacidade de resposta do servidor.
Se não tem esses conhecimentos, pagar 100 ou 200 euros a alguém que faça esses ajuste nas configurações pode valer bem o dinheiro que custo.
Mudar de servidor
Por outro lado, se já tem algum tráfego ou se o servidor que utiliza actualmente já tem alguma idade, talvez mudar de servidor para um mais recente talvez seja um solução para o problema.Quando mudar de servidor tenha em consideração que há varias coisas que podem influenciar a performance do seu site, nomeadamente a memória do servidor, a velocidade do processador e o número de processadores.
Conclusão
Ter um servidor que parece suportar bem os sites que está a servir pode não ser o suficiente. Idealmente qualquer servidor deve esta normalmente abaixo dos 10% da sua capacidade de processamento.Este valor, obviamente, é o que acho aconselhável, e significa que em situações de pico o servidor vai ter normalmente uma carga inferior a 25% da sua capacidade.
Se sem situações especiais a carga do seu servidor está acima dos 25%, mesmo nos momentos de maior tráfego nos seus sites, isso significa que não conseguirá suportar situações especiais, como ser promovido à primeira página do Digg.
Se a carga normal do servidor está acima dos 50%, então está mais do que na altura de mudar de servidor para algo mais potente. Ou então dividir os seus sites por vários servidores. Urgentemente.
Se utiliza uma solução de hosting partilhado, então reze. Reze para que o seu blog não seja promovido ou para que o servidor ainda esteja pouco ocupado. É mais provável que consiga a primeira.



Feed RSS 2.0