Pular para o conteúdo

Como otimizar um servidor web para alta performance?

Responder tópico
  • Denunciar
  • Indicar

1. Como otimizar um servidor web para alta performance?

Enviado em 16/04/2008 - 17:52h

Olá, galera.

Tenho uma necessidade aqui na minha empresa, uma aplicação web, rodando no TOMCAT5.5, está muito lenta.

Comecei a procurar na rede algo que pudesse me ajudar a melhorar a performance. (Não tenho como mexer na aplicação - é de terceiros)

Encontrei um artigo muito interessante, mas, um pouco antigo, no link abaixo link:

http://www.las.ic.unicamp.br/paulo/teses/20020411-MSc-Renato.Hirata-Otimizando.servidores.Web.de.alt...

O problema é que não encontrei nada mais atualizado. Alguem saberia onde posso encontrar essas informações mais atuais?
Como otimizar um servidor web?
Como colocá-lo para rodar no kernel?
Como alterar valores de cache de disco e buffers para otimizar o acesso?

Grato pela cooperação. (Vou continuar na minha busca, caso encontro algo, posto aqui).

Responder tópico

2. cara

Enviado em 17/04/2008 - 14:54h

vamos por parte.

1) Sua aplicação roda no Tomcat 5.5, provavelmente deve ser feita em java, verifique se realmente é uma aplicação em java. Pelo fato dela ser de terceiros dificulta mudar o webserver pois pode ser que a mesma seja incompativel com versões anteriores do tomcat como o 5 ou o 4. Talvez vale a pena fazer um teste nestes outros tomcat mas provavelmente não vai funcionar. O tomcat 4 é leve mas incompativel com uma penca de coisa o Tomcat 5 é um meio termo mas faltam recursos.

2) Se a aplicação for mesmo feita em java, tenha em mente que JAVA É LENTO. Sim. Java é (semi) interpretado, precisa alocar uma penca de coisa na memória, gasta memória a bessa. Tem que dar uma penca de volta pra fazer um hello world. Java só se torna melhor (em termos de performance, vamos deixar o resto de lado ok) que linguagens mais leves (como C por ex.) em casos onde tem recursos abundantes, vide por ex, 2 aplicações, 1 escrita em java e outra escrita em C. Em uma maquina de 1Ghz com 256Mb de memória a aplicação em C pode ser umas 10 vezes mais rapida que a aplicação em java. Se colocarmos em uma maquina com 100Gb de memória e 16 processadores de 2Ghz, a aplicação java talvez seja 10 vezes mais rapida que a aplicação C (isso por diversos motivos que não cabe agora entrar em detalhes tbem), portanto não adianta querer fazer milagre com java em maquina lenta.

3) Verifique se a aplicação é compativel com outro aplication/web server, talvez vale a pena testar com outro.

4) Um ultimo caso seria tentar compilar com o GCJ ou rodar com a VM do GCJ (caso a aplicação use java 1.4). Acho dificil funcionar mas com certeza melhora a performance.

Agora como você não é o PAI DA CRIANÇA fica dificil.

Agora se os problemas tão sendo outros e não a aplicação lenta em si, explique melhor, ok?

Abs

3. TOMCAT

Enviado em 18/04/2008 - 10:30h

Valeu pela explanação. Obrigado.

Mas, diga-me uma coisa: Tem como eu alocar a maior parte de recursos do sistema para o tomcat? Isto é porque aqui tem um storage com o VMware e essa máquina virtual só vai rodar essa aplicação, assim queria alocar tudo para o tomcat. É possível?

4. ae

Enviado em 18/04/2008 - 10:52h

tem um parâmetro no tomcat (parâmetro do java na verdade) chamado Xmx, este parâmetro é a quantidade máxima de memória que o java vai usar, quanto mais melhor. Se tiver 1Gb na máquina, deixe um valor próximo por exemplo -Xmx864. Outra coisa é você deixar a VM com bastante memória e um cpu dedicado (ai ja entra em outra area que é config da VM). Outra coisa é deixar o processo com o nice bem alto (pesquise sobre prioridade de processos).
Bem aqui esta uma inicialização basica do tomcat que eu uso:

$JAVA_HOME\jre\bin\java -Xmx512 -Djava.endorsed.dirs=$TOMCAT/common/endorsed -Dcatalina.home=$TOMCAT -Dcatalina.base=$TOMCAT -Djava.io.tmpdir=$TOMCAT/temp

Como pode ver deixo 512mb pro java.

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder