Linux Consumindo muita memória

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (0)  (0)

Veja neste artigo onde trato a problemática de termos aplicações gerando Logs continuamente e como resolver esse problema.

Linux + Java consumindo muito espaço em disco?
    Olá pessoal, tenho recebido muitas dúvidas quanto ao uso do Java e seu uso abusivo de memória e espaço em disco. Até certo ponto eu concordo que o Java consome mais do que promete quando se fala em relação à memória, porém isso se torna realmente necessário quando falamos de aplicações mais robustas, com vários recursos de verificação e correções à falhas. Isso tem-se tornado ainda mais constante conforme vamos escrevendo, escrevendo e escrevendo os nossos código, visto que, a tendência é corrigirmos os nossos programas e claro aumentando cada vez mais as nossas linhas de código.
    Portanto, verificamos que com o tempo abusamos algumas vezes, no caso do Java do uso de Logs, uma vez que os mesmos são essenciais para analisarmos o uso, os acessos às classes, objetos etc. E com isso nos servidores normalmente superlotam os discos rígidos (HD), precisando assim uma manutenção continua na rotina do dia-a-dia.

Analisando o Espaço em Disco
    Primeiramente precisamos verificar o espaço em disco, que por sua vez, espaço e memória representam CUSTO, isso mesmo DINHEIRO.
    Desde os primórdios da informática, a preocupação com uso de memória, quer seja de armazenamento fixo ou temporário, é resultante de muita especulação, tempo e dinheiro, com isso temos sempre que analisar seu custo x benefício. Claro que quando mais memória, mais espaço em disco é melhor, o problema é que isso custa, e todo mundo, todas as empresas T.I ou não, querem a informática pra diminuir seus custos e não o contrário.
    Bom, para verificarmos a memória num servidor, ou máquina que você estiver usando Linux  e Java, use o console de comando (shell), digite:
$ df
   O comando df, serve para analisarmos o quando do espaço em disco está sendo usado no momento. Ele deve mostrar algo do tipo:
$ df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/vzfs             41943040  12704976  29238064  31% /
none                   2097152         4   2097148   1% /dev

    Note que temos um uso até o momento de 31% do disco montado no sistema Linux, é sempre bom ficar de olho. Nesse caso não é tão preocupante, mas se você começar a notar que esse número está crescendo exponencialmente é bom ficar de olho nos LOGS, isso mesmo seu sistema e (ou) seu gerenciador de páginas no caso do uso de Java, podem estar salvando além da conta e com isso começa a superlotar seu disco rígido.

Localizando os Logs do Sistema
    Normalmente estão na pasta /tmp, do seu sistema operacional (Linux), mas também é bom dar uma olhada nos logs do seu aplicativo de servidor de páginas. No exemplo abaixo mostro o uso do GlassFish 3.0 no linux:
[/home/xxx/appservers/glassfish-3x/domains/domain1]# du -sh
2.4G    .

    Dentro da pasta localizando o seu  DOMAIN, você pode digitar o comando du -sh, que mostra a quantidade usada por esse diretório e começar a sua analise.
  
    Ainda dentro da sua hierarquia de diretórios no Linux, é possível que você tenha que excluir o excesso de Logs, gerado pelo(s) seu (s) sistema(s), portanto, temos que entrar na pasta logs.
 [/home/xxx/appservers/glassfish-3x/domains/domain1/logs]#
e daqui excluir manualmente da seguinte forma.:

$ rm -f server.log*
    NOTE: que estamos usando o "*" coringa para excluir todos os arquivos iniciados com server.log... e portanto é necessário que você compreenda bem o que está fazendo, não me responsabilizo caso você exclua mais arquivos que precisa ou exclua na pasta errada, se estiver na dúvida, não faça e pesquise se o arquivo , ou os arquivos de sua pasta podem ser realmente excluídos.

    Após excluir tanto os logs do sistemas (na pasta /tmp), quando os logs do(s) seu(s) sistema(s) Java (/appservers/glassfish-3x/domains/domain1/logs) , digite o comando  df ,  novamente para notar a diferença e ver se é o resultado esperado.:
$ df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/vzfs             52428800   5401484  47027316  11% /
none                   1048576         4   1048572   1% /dev

    Viu a diferença?, de 31% conseguimos diminuir para 11%.

Dica
    Podemos ainda automatizar essa tarefa usando outros comandos do Linux, que por sua vez é excelente quando se trata de servidores e ambientes de desenvolvimento Java, nas nossas aplicações sempre usamos servidores Linux e não temos mais problemas, porém NUNCA deixe de verificar, analisar a saúde de seus sistemas, servidores bancos de dados. Nunca apague arquivos desnecessariamente. Nunca faça nada sem ter certeza.
Fica então um forte abraço++ e até a próxima.

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?