Como ajustar as configurações da memory JVM do Tomcat 5.5 sem usar o programa de configuração

Eu preciso configurar as configurações de memory do Tomcat como parte de uma instalação maior, portanto, configurar manualmente o tomcat com o aplicativo de configuração depois que o fato estiver fora de questão. Eu pensei que poderia apenas jogar as configurações de memory da JVM na variável de ambiente JAVA_OPTS, mas estou testando isso com o jconsole para ver se funciona e … não funciona.

De acordo com o comentário abaixo, CATALINA_OPTS também não funciona. Até agora, a única maneira de fazer isso funcionar é através da GUI de configuração do Tomcat, e essa não é uma solução aceitável para o meu problema.

A sugestão de Serhii funciona e aqui estão mais alguns detalhes.

Se você procurar no diretório bin da sua instalação, verá os scripts catalina.sh ou .bat. Se você observar esses itens, verá que eles executam um script setenv.sh ou setenv.bat, respectivamente, se existirem, para definir variables ​​de ambiente. As variables ​​de ambiente relevantes são descritas nos comentários na parte superior do catalina.sh/bat. Para usá-los, crie, por exemplo, um arquivo $ CATALINA_HOME / bin / setenv.sh com o conteúdo

export JAVA_OPTS="-server -Xmx512m" 

Para o Windows, você precisará, em setenv.bat, algo como

 set JAVA_OPTS=-server -Xmx768m 

Espero que isso ajude, Glenn

Crie um arquivo setenv. (Sh | bat) no diretório tomcat / bin com as variables ​​de ambiente que você deseja modificar.

O script catalina verifica se o script setenv existe e o executa para definir as variables ​​de ambiente. Dessa forma, você pode alterar os parâmetros para apenas uma instância do tomcat e é mais fácil copiá-los para outra instância.

Provavelmente seu aplicativo de configuração criou o script setenv e é por isso que o tomcat está ignorando as variables ​​de ambiente.

Use a variável de ambiente CATALINA_OPTS .

Se você estiver usando o Ubuntu 11.10 e o apache-tomcat6 (instalando a partir do apt-get), você pode colocar esta configuração em /usr/share/tomcat6/bin/catalina.sh

 # ----------------------------------------------------------------------------- JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1024m \ -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=512m \ -XX:MaxPermSize=512m -XX:+DisableExplicitGC" 

Depois disso, você pode verificar sua configuração via ps -ef | grep tomcat 🙂

Útil para máquinas virtuais linux; Use 75% da sua memory total do sistema para o Tomcat. Yay AWK

Coloque no início de “{tomcat} /bin/startup.sh”

 export CATALINA_OPTS="-Xmx`cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.75 } '`k" 

Eu uso o seguinte conteúdo setenv.bat :

 ==============setenv.bat============ set JAVA_OPTS=-XX:MaxPermSize=256m -Xms256M -Xmx768M -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=7777,server=y,suspend=n %JAVA_OPTS% ==================================== 

Ele também permite a debugging e define a porta de debugging para 7777 e anexa o conteúdo anterior de JAVA_OPTS .

Apenas para adicionar ao comentário anterior, a documentação da ferramenta de linha de comando para atualizar as configurações do serviço Tomcat (se o Tomcat estiver sendo executado como um serviço no Windows) está aqui . Essa ferramenta atualiza o registro com as configurações adequadas. Portanto, se você quiser atualizar a configuração de memory máxima para o serviço Tomcat, poderá executá-la (no diretório tomcat / bin), assumindo o nome de serviço padrão do Tomcat5:

 tomcat5 //US//Tomcat5 --JvmMx=512 

Eu gosto da idéia de configurar a memory do tomcat6 com base na memory do servidor disponível (é legal porque não preciso alterar a configuração após a atualização de hardware). Aqui está o meu (configuração de memory um pouco estendida):

exportar CATALINA_OPTS = “- Xmx` `cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.75 } '` k -Xms` `cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.75 } '` k -XX: NewSize = `cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.15 } '` k -XX: MaxNewSize = `cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.15 } '` k -XX: PermSize = `cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.15 } '` k -XX: MaxPermSize = `cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.15 } '` k ‘

Coloque-o em: “{tomcat} /bin/startup.sh” (por exemplo “/ usr / share / tomcat6 / bin” para o Ubuntu 10.10)

Não tenho certeza se será uma solução aplicável para você. Mas a única maneira de monitorar as configurações de memory do Tomcat, bem como o número de conexões, etc. que realmente funciona para nós é o Lambda Probe .

Ele mostra a maioria das informações que precisamos para o tuning do Tomcat. Nós testamos com o Tomcat 5.5 e 6.0 e funciona bem apesar do status da versão beta e da data da última atualização no final de 2006.

Se você iniciasse o Tomcat manualmente (não como serviço), a variável de ambiente CATALINA_OPTS seria o caminho a seguir. Se você iniciasse como um serviço, as configurações provavelmente são armazenadas em algum lugar no registro. Eu tenho o Tomcat 6 instalado em minha máquina e encontrei as configurações na chave HKLM\SOFTWARE\Apache Software Foundation\Procrun 2.0\Tomcat6\Parameters\Java .

Se você executar o Tomcat no Windows, poderá usar o aplicativo “Tomcat Monitor” que acompanha o Tomcat.

Vá para a guia Java. Na parte inferior, abaixo da área de texto “Opções Java”, você encontrará três campos de input:

  • Pool de memory inicial _ __ MB
  • Máximo de conjuntos de memory _ __ MB
  • Tamanho da pilha de encadeamento _ ____ KB

Basta editar seu script catalina / bin / startup.sh. Adicione os seguintes comandos:

 #Adjust it to the size you want. Ignore the from bit. export CATALINA_OPTS="-Xmx1024m" #This should point to your catalina base directory export CATALINA_BASE=/usr/local/tomcat #This is only used if you editing the instance of your tomcat /usr/share/tomcat6/bin/startup.sh 

Sailab: http://www.facejar.com/member/page-id-477.html

No meu caso, havia um arquivo /etc/sysconfig/tomcat5.conf sobrescrevendo todas as configurações em /etc/tomcat5/tomcat5.conf