Fórum Ubuntu Linux - PT

Suporte Técnico => Servidores => Tópico iniciado por: bigbangd2 em 15 de Junho de 2016, 23:45

Título: Consumo de memória muito auto
Enviado por: bigbangd2 em 15 de Junho de 2016, 23:45
Boa noite a todos.

Sou novo no mundo linux e a algum tempo atrás, tive que montar um servidor ubuntu 14.04 + postgresql 9.0.23 para rodar um sistema da empresa, porem de algum tempo pra cá o sistema ficou um pocou lento e fui verificar o consumo do processador, memória. E alguns processos estão consumindo muita memória.

O servidor tem 12GB de RAM.

Segue imagem do comando Free -m

https://uploaddeimagens.com.br/imagens/c61hir_8-png

Segue imagem gerado pelo htop.

https://uploaddeimagens.com.br/imagens/czdulo_l-png


Eu percebi que existem vários processos consumindo 1.6% da memória para cada processo.

Alguem pede me ajudar a resolver o problema de consumo de memoria do ubuntu?
Título: Re:Consumo de memória muito auto
Enviado por: galactus em 16 de Junho de 2016, 08:01
bigbangd2, você quis dizer "alto" consumo de memória e não "auto", correto?


Vamos lá!

Seu htop já ajuda muito aí.  O  que me faz perguntar, qual o motivo do seu servidor ter o Ubuntu completo (eu digo com a parte gráfica e tudo) instalado aí?
Existe realmente a necessidade de ter a parte gráfica instalada?

A dupla dinâmica Compiz/Unity são grandes devoradoras de recursos da máquina, então...

E olha que seu consumo de RAM está baixo aí na foto. Pelo menos só com dois dias ligados.

O quão alto chega esse consumo de RAM?

É só o compiz mesmo que consome muito? E o banco de dados?

Eu recomendaria o smem para verificar o consumo de RAM do seu servidor: http://xmodulo.com/visualize-memory-usage-linux.html


Se fosse meu servidor eu não instalaria a parte gráfica, só modo texto.  Se for o caso de ter que deixar a parte gráfica, tem que começar a desligar todas as "frescuras" do Compiz/Unity, temas alegóricos e qualquer outro adereço carnavalesco que não vão ajudar em nada o seu banco de dados!
 
Título: Re:Consumo de memória muito alto
Enviado por: bigbangd2 em 16 de Junho de 2016, 08:51
Bom dia.

Sim, é "Alto" mesmo.

Completo, pois sai de um Windows Server as pressas para montar um Linux, então ainda estou estudando sobre o linux e seu modo texto...

Pelo que ví nas imagens o consumo esta alto, pois na imagem com o free -m informa que a memória esta da seguinte forma:

Informações da memória:
Total: 12000
Usado:11832
Livre: 167

Então com estas informações já da pra ver que a memória esta totalmente consumida e este print foi tirado depois do expediente, não tinha ninguém acessando o Servidor neste momento.

Vou remover o unity e deixar apenas modo texto.
Título: Re:Consumo de memória muito auto
Enviado por: agente100gelo em 16 de Junho de 2016, 09:17
Você pode instalar uma interface mais leve como o XFCE ou LXDE.
Título: Re:Consumo de memória muito auto
Enviado por: zekkerj em 16 de Junho de 2016, 18:58
Bom dia.

Sim, é "Alto" mesmo.

Completo, pois sai de um Windows Server as pressas para montar um Linux, então ainda estou estudando sobre o linux e seu modo texto...

Pelo que ví nas imagens o consumo esta alto, pois na imagem com o free -m informa que a memória esta da seguinte forma:

Informações da memória:
Total: 12000
Usado:11832
Livre: 167

Então com estas informações já da pra ver que a memória esta totalmente consumida e este print foi tirado depois do expediente, não tinha ninguém acessando o Servidor neste momento.

Vou remover o unity e deixar apenas modo texto.

Eu não considero que esse consumo esteja tão alto assim, OK, vc tem 12GB, e está fazendo um pouco de swap (pouco mesmo, por volta de 200MB). Meus servidores aqui, todos, fazem um pouco de swap, mesmo as máquinas com 64GB de ram.
É normal que o Linux reporte sempre toda a memória como ocupada. Isso não é indicação de excesso de consumo. Você observa excesso de consumo pela ocupação de swap (memória virtual em disco), que quando é excessiva, faz despencar o desempenho do sistema.

O que me chama mais atenção é a quantidade desses processos "compiz --replace". Verifique se eles são mesmo necessários. O nome "compiz" me remete a alguns benchmarks de vídeo, então talvez seja um comportamento que pare quando você desativar a interface gráfica (*). Não sei dizer se eles seriam do Postgre (aliás, não me lembro de já ter usado Postgre alguma vez).

(*) Agora, relendo a resposta do galactus, vejo que "compiz" é um processo do Unity. Provavelmente dá pra desativá-lo, talvez até sem desativar o Unity, o que vai te manter a interface gráfica funcionando.
Título: Re:Consumo de memória muito auto
Enviado por: galactus em 16 de Junho de 2016, 19:27
Bom, se não quiser trocar de ambiente gráfico como sugeriu o agente100gelo, você pode usar a sessão Ubuntu Classic ou Gnome Flashback com metacity. Aí vai desligar o Unity.

È que o Unity é um plugin do Compiz. Então sem Compiz não tem o Unity! Tem que usar outro gerencidor de janelas.

No terminal:

Citar
sudo apt-get update; sudo apt-get install gnome-session-fallback
Saia de sua sessão   e na tela de login veja as opções de sessões diferentes.

Da uma olhada aqui: http://www.howtogeek.com/189912/how-to-install-the-gnome-classic-desktop-in-ubuntu-14.04/
Título: Re:Consumo de memória muito auto
Enviado por: zekkerj em 17 de Junho de 2016, 09:23
Tem como simplesmente desativar o ambiente gráfico?
Título: Re:Consumo de memória muito auto
Enviado por: galactus em 17 de Junho de 2016, 11:14
Tem como simplesmente desativar o ambiente gráfico?

Tem sim!

Ele altera o grub para o sistema dar o boot em modo texto com a parte gráfica desligada. Depois se quiser ele liga a parte gráfica!

Só seguir essas dicas: http://ubuntuhandbook.org/index.php/2014/01/boot-into-text-console-ubuntu-linux-14-04/

Se precisar voltar para parte gráfica: service lightdm start

Título: Re:Consumo de memória muito auto
Enviado por: zekkerj em 17 de Junho de 2016, 14:26
Não dá pra subir com o "startx", depois de logar no console de texto?
Título: Re:Consumo de memória muito auto
Enviado por: galactus em 18 de Junho de 2016, 08:58
Não com essa versão do Ubuntu. Tem que ser com o service lightdm start .
Título: Re:Consumo de memória muito auto
Enviado por: bigbangd2 em 21 de Junho de 2016, 09:48
Obrigado, galera.

Vou retirar o Unity, pois ví que o mesmo é bem pesado e existem outras interfaces mais leves, ou vou deixar no modo texto mesmo.

Tenho que aprender a utiliza-la.

Grande abraço!
Título: Re:Consumo de memória muito auto
Enviado por: druidaobelix em 21 de Junho de 2016, 11:51
Vou retirar o Unity, pois ví que o mesmo é bem pesado e existem outras interfaces mais leves, ou vou deixar no modo texto mesmo.

A questão mais relevante de fato é aquela já levantada pelo /galactus/, a razão pela qual um servidor de banco de dados estaria usando uma interface gráfica de desktop (e pior ainda, com Unity), o que em regra não faz o menor sentido, a menos que se tenha uma muito sólida razão para isso, que sequer posso imaginar qual seja.

Um servidor geralmente é uma unidade que deve ser deixada isolada e fisicamente segura, preferencialmente sem monitor e sem teclado, vez que deveria ser raro o acesso físico direto ao equipamento com essa função, sendo comum para administração do servidor e, assim, acesso às funcionalidades e configurações o uso do SSH (Secure Shell).

Há entretanto uma outra questão que é a interpretação do resultado do comando free.

Inicialmente use o formato free -tm o qual empresta maior clareza ao raciocínio.

Note que usando de verdade, no sentido de memória alocada diretamente à programas executando, sua máquina estava usando apenas 1432, tendo livres 10568 de um total de 12000, o que havia é um uso da memória para buffers/cache, ou seja, havia uma enorme folga no sistema, o que geralmente não deveria estar implicando em nenhuma consequência de maior monta, exceto se de fato há uma necessidade de altíssima performance do servidor, mas aí a solução possivelmente já seria mais abrangente, envolvendo o conjunto do hardware e não apenas essa questão tópica e pontual de memória ram.

Esse link eventualmente pode ajudar a interpretar adequadamente o comando free:

Explicando o “free”, do Linux.

https://bitismyth.wordpress.com/2012/05/15/explicando-o-free-do-linux/


Remontar buffers/cache evidentemente tem algum impacto na performance, pois se algo está em buufers/cache chegará em alguma medida mais rápido ao processador, mas isso está longe de poder ser comparado ao acesso swap à disco rígido e seu enorme tempo de latência.

A questão objetiva é: o seu banco de dados está lento?
Note que a solução muito frequentemente passa pelo gerenciamento de buffer no próprio SGBD (Sistema Gerenciador de Banco de Dados ou DBMS - Data Base Management System), que é distinto do gerenciamento efetuado pelo S.O.

Aqui um artigo antigo, mas muito didático e instrutivo sobre buffer cache em SGBD.

Banco de dados
Uma pequena introdução sobre Buffer Cache!

https://joaocosme.wordpress.com/2008/06/24/uma-pequena-introducao-sobre-buffer-cache/
Título: Re:Consumo de memória muito auto
Enviado por: zekkerj em 21 de Junho de 2016, 11:59
Citar
A questão objetiva é: o seu bando de dados está lento?
Note que a solução muito frequentemente passa pelo gerenciamento de buffer no próprio SGBD (Sistema Gerenciador de Banco de Dados ou DBMS - Data Base Management System), que é distinto do gerenciamento efetuado pelo S.O.
Às vezes o problema não é nem de gerenciamento de buffer, mas da escolha de um banco de dados adequado pra forma como a aplicação trabalha. O tipo de tabela usada também pode influir muito (p.ex. escolher entre InnoDB e MyISAM no MySQL).
E por fim, mas não menos importante, fazer um projeto eficiente do próprio banco de dados, eliminando redundâncias desnecessárias, criando índices eficientes, e mantendo o próprio banco de dados organizado, com o mínimo de fragmentação interna.