Tomcat 8.0.9 Desligando (sem mensagens)

2

Eu honestamente não tenho certeza, o que está acontecendo. Eu tenho o pacote tomcat 8.0.9 instalado (tomcat8) e funciona bem quando inicio o serviço. No entanto, em algum momento, ele desliga e não sei por quê. O catalina.out não diz porquê. Alguém tem alguma idéia de como eu posso descobrir o que está causando o desligamento?

Aqui está um trecho de catalina.out mostrando que eu finalmente iniciei o servidor em 13 de janeiro. Ele não tem nenhuma mensagem de desligamento e me mostra reiniciando esta manhã (sudo service tomcat8 start):

INFO: Starting ProtocolHandler ["http-nio-8080"]
Jan 13, 2015 11:44:37 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-nio-8009"]
Jan 13, 2015 11:44:37 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 7942 ms
Tue Jan 13 23:45:58 EST 2015-25 java.lang.instrument.Instrumentation is used to reload class files
Jan 15, 2015 9:53:52 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-8080"]
Jan 15, 2015 9:53:52 AM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Jan 15, 2015 9:53:52 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-nio-8009"]
Jan 15, 2015 9:53:52 AM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Jan 15, 2015 9:53:52 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 2925 ms
Jan 15, 2015 9:53:52 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Jan 15, 2015 9:53:52 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/8.0.9 (Ubuntu)
Jan 15, 2015 9:53:52 AM org.apache.catalina.startup.HostConfig deployDescriptor

A menos que essa linha 'java.lang.instrument.Instrumentation seja usada para recarregar arquivos de classe' esteja me informando sobre um desligamento, não vejo nenhuma informação sobre o motivo do desligamento.

Eu pensei que talvez alguém estivesse cegando para isso cegamente e desligando, emitindo o SHUTDOWN, mas meu iptables está configurado para permitir conexões, mas meu computador doméstico.

iptables -L --line-numbers
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     all  --  anywhere             anywhere
2    ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
3    ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
4    ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
5    ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ftp
6    ACCEPT     tcp  --  removed.my.ip.here   anywhere             tcp
7    DROP       all  --  anywhere             anywhere

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination

Existe uma maneira de ativar o log adicional no tomcat8 para que eu possa ver o que está causando o desligamento?

Edit: 23/01/2015 - Eu já usei o Tomcat 8.0.17 (versão mais recente), e ele ainda está acontecendo e ainda sem pistas no arquivo de log ...

Informações adicionais solicitadas:

  • Ubuntu 14.10
    • Hospedado pelo Luna Node Dynamic
    • Linux dev 3.16.0-29-genérico # 39-Ubuntu SMP seg 15 de dezembro 22:27:29 UTC 2014 x86_64 x86_64 x86_64 GNU / Linux
    • 512MB de RAM
    • 256 MB de SWAP
    • 1 CPU
  • Tomcat 8.0.9
    • Instalado via apt-get
    • Atualizado para 8.0.17 fazendo o download de binários
    • Iniciado por meio de 'service tomcat8 start'
    • O Tomcat para em si (que é o problema) Eu nunca parei, mas usaria 'service tomcat8 stop' se eu quisesse pará-lo
  • Informações da versão Java:
    • versão openjdk "1.8.0_40-internal"
    • Ambiente de tempo de execução do OpenJDK (compilação 1.8.0_40-internal-b09)
    • VM do servidor OpenJDK de 64 bits (compilação 25.40-b13, modo misto)
    • Instalar via apt-get

/ etc / default / tomcat8:

TOMCAT8_USER=tomcat8
TOMCAT8_GROUP=tomcat8
JAVA_OPTS="-Djava.awt.headless=true -Xms256m -Xmx256m -XX:+UseConcMarkSweepGC -javaagent:/usr/share/tomcat8/railo/railo-inst.jar"

/etc/tomcat8/logging.properties:

handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

1catalina.org.apache.juli.FileHandler.level = FINE
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.

2localhost.org.apache.juli.FileHandler.level = FINE
2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.FileHandler.prefix = localhost.

java.util.logging.ConsoleHandler.level = ALL
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = FINE
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.FileHandler

org.apache.catalina.session.level=ALL
    
por Brad 15.01.2015 / 16:15

1 resposta

1

O kernel de virtualização KVM estava eliminando o processo porque a VM estava ficando sem memória. Isso é validado com check-out /var/log/kern.log:

Jan 28 11:30:07 dfrewind-dev kernel: [970762.688259] Out of memory: Kill process 11884 (java) score 536 or sacrifice child
Jan 28 11:30:07 dfrewind-dev kernel: [970762.690756] Killed process 11884 (java) total-vm:2317312kB, anon-rss:257188kB, file-rss:0kB

Com base na pergunta aqui em relação ao reinício do Tomcat, decidi enviar um e-mail ao meu provedor de hospedagem para perguntar se eles estavam eliminando meu processo, apesar de minha utilização da CPU estar baixa. Eles afirmaram que era impossível para eles matar um processo no meu servidor sem remotá-lo devido à tecnologia de virtualização que eles usam (KVM) e sua política de privacidade.

Eles elaboraram que o kernel de virtualização KVM matará o processo usando a maior parte da memória sempre que a VM ficar sem memória e eu puder verificar se isso estava acontecendo visualizando /var/log/kern.log.

    
por Brad 28.01.2015 / 19:18