Consumo de memória muito auto

Iniciado por bigbangd2, 15 de Junho de 2016, 23:45

tópico anterior - próximo tópico

bigbangd2

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?

galactus

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!
 
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

bigbangd2

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.

agente100gelo

Você pode instalar uma interface mais leve como o XFCE ou LXDE.
Advogado e analista de sistema cearense.
Twitter: @glaydson

zekkerj

Citação de: bigbangd2 online 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.

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.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

galactus

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:

Citarsudo 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/
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

zekkerj

Tem como simplesmente desativar o ambiente gráfico?
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

galactus

Citação de: zekkerj online 17 de Junho de 2016, 09:23
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

BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

zekkerj

Não dá pra subir com o "startx", depois de logar no console de texto?
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

galactus

Não com essa versão do Ubuntu. Tem que ser com o service lightdm start .
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

bigbangd2

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!

druidaobelix

#11
Citação de: bigbangd2 online 21 de Junho de 2016, 09:48
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/
www.arredondar.org.br
Vencedor Desafio de Impacto Social Google 2016!
Você também pode participar e fazer a diferença.

zekkerj

CitarA 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.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D