Se você parar o processo solr e um processo java ainda estiver em execução, haverá outro processo java em seu servidor. A primeira etapa é documentar todos os processos Java em execução. Uma boa ferramenta para isso no Unix é a ferramenta ps
. Tente isto:
$ ps auxwww | grep java
Essa saída deve mostrar todos os processos Java em execução e os comandos que estão sendo executados. Tente isso antes e depois de parar o sol.
A segunda questão é "qual desses processos java está consumindo tanto CPU"? Você pode precisar interromper o processo de jetty além do processo de solr. Além disso, você nunca precisa realmente reiniciar um servidor Linux apenas porque um único processo está se comportando mal. Você também pode usar o comando kill
para interromper um processo se agora for o ID do processo, que pode obter em top
ou ps
.
A curto prazo, pode ser uma boa ideia instalar algum tipo de script "watchdog" em sua máquina para ajudar nessas situações. Por exemplo, monit
pode ser usado para reiniciar automaticamente um serviço ou processo quando ele consome uma certa quantidade de recursos da CPU.
A longo prazo, lamento dizer que você tem um problema de desempenho. Você precisa olhar para reconfigurar solr e jetty no mínimo. Você também pode precisar examinar o ajuste da coleta de lixo e, possivelmente, adicionar mais hardware. Há muitas informações sobre esses tópicos on-line e lamento dizer que esse processo pode ser um pouco difícil.
Boa sorte!
Tom Purl