Tomcat - Como verificar as configurações de memória atualmente em uso

6

Eu configurei um servidor Tomcat usando o Server 2008 e o IIS 7.
Como posso saber se a variável de ambiente JAVA_OPTS está realmente sendo usada?

Eu já ouvi antes que eu tenho que editar o arquivo service.bat para fazer com que a variável de ambiente JAVA_OPTS seja usada, mas como posso saber se é bem sucedido?

Eu não consegui descobrir se há uma maneira de ver isso nos registros ou algo mais quantitativo. A única maneira que eu poderia pensar em tentar testá-lo é editar a variável e tentar dizer se há uma diferença no desempenho. Eu defino o JAVA_OPTS como sendo o seguinte:

-server -Xmx1k -Xms1k-Xmn1k -Xss128k -XX:+UseParallelGC -XX:ParallelGCThreads=20 -XX:PermSize=1k -XX:MaxPermSize=1k  

Além disso, encontrei documentação dizendo para alterar a seguinte linha no service.bat de:

"%EXECUTABLE%" //US//%SERVICE_NAME% ++JvmOptions "-Djava.io.tmpdir=%CATALINA_BASE%\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties" --JvmMs 128 --JvmMx 256

para:

"%EXECUTABLE%" //US//%SERVICE_NAME% ++JvmOptions "-Djava.io.tmpdir=%CATALINA_BASE%\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties" %JAVA_OPTS%

Não recebi erros quando executei o comando

service install ServiceName

Até agora tudo parece estar rodando tão rápido como sempre é antes de eu reinstalar o serviço com as configurações de memória alteradas, fazendo-me pensar que o JAVA_OPTS não está afetando nada.

Desculpe se este é um tipo amplo de pergunta, mas ainda não encontrei uma boa pista sobre o que realmente está acontecendo no back-end. Alguém pode lançar alguma luz sobre isso?

    
por OrangeGrover 25.07.2012 / 18:36

2 respostas

6

Tudo bem, eu achei a informação que estava procurando, então vou aceitar minha resposta porque estou dando mais detalhes, mas +1 para David Levesque pelos leads.

Descobri que as configurações de memória que eu estava tentando definir não estavam sendo usadas. Para alterar as configurações de memória, usei o tomcat7w na pasta \ bin.

Execute o seguinte comando:

tomcat7w //ES//<ServiceName>

Em seguida, o seguinte deve aparecer:

CliquenaguiaJavaqueestásublinhadaeadicioneosargumentosnasáreasdestacadas.

Paraverificarisso,useioexecutáveljinfo(napasta\bin).OJinfoimprimeinformaçõesdeconfiguraçãoJavaparaumdeterminadoprocessoJava.Executeestecomandousandoaseguintesintaxe:

jinfo-flagsPID-of-Tomcat-executable

OpequenoscriptaseguirmesalvoualgumtempodeterquedescobriroPIDdoTomcattodasasvezes,entãoimagineiquepoderiapostaraqui:

@echoofffor/f"tokens=1,2 delims= " %%i in ('=tasklist ^| findstr "tomcat"') do (
    echo Tomcat Executable = %%i
    echo Tomcat Process ID = %%j
    set tomcat_pid=%%j
)
echo %tomcat_pid%
%JAVA_HOME%\bin\jinfo -flags %tomcat_pid%
    
por 07.08.2012 / 23:59
4

Você pode usar o utilitário jinfo que vem com o JDK para consultar os sinalizadores de VM e as propriedades do sistema no tempo de execução.

    
por 25.07.2012 / 20:14