Como diminuir cache de memória do sistema ?

1. Como diminuir cache de memória do sistema ?

Henrique
Henrique-RJ

(usa Outra)

Enviado em 26/04/2018 - 10:17h

Alguém sabe como faço para regular o cache de memória que aqui está entre 600 e 700MB ?

Uso distro derivada do Ubuntu 14.04 e o PC tem 2GB de memória.


  


2. Re: Como diminuir cache de memória do sistema ?

Matheus
pylm

(usa Gentoo)

Enviado em 26/04/2018 - 11:36h

Se tiver falando da RAM, cê pode zerar ele manualmente:

free && sync && echo 3 > /proc/sys/vm/drop_caches && free 



3. Re: Como diminuir cache de memória do sistema ?

Henrique
Henrique-RJ

(usa Outra)

Enviado em 26/04/2018 - 11:45h

Mas não tem alguma linha de comando ou algum arquivo de configuração que eu possa editar para manter sempre uma memória cache menor ?

O sistema aparentemente fica fechando dependências pré-carregadas toda a vez que a memória usada atinge um certo nível justamente para manter essa memória cache ( e a livre também ).


4. Re: Como diminuir cache de memória do sistema ?

Matheus
pylm

(usa Gentoo)

Enviado em 26/04/2018 - 12:06h

Até onde sei não tem como desabilitá-lo pois a ideia é justamente acelerar o sistema por "cachear" arquivos que os programas estão usando. Você pode entretanto manipulá-lo de modo a jogar pro cache o que você quiser ou mesmo travar tais arquivos lá, utilizando o vmtouch. Eu tinha escrito uma dica sobre ele mas ainda vai demorar um tempo até ser publicada então vou deixar ela aqui, veja:


A grande vantagem de carregar os binários e libs na ram é que quando você for acessá-los, eles já estarão carregados! Você precisa de duas coisas:

*Memória RAM sobrando
*vmtouch

O segundo é um programinha disponível nos repositórios da maioria das distros, é ele que vai nos auxiliar nessa tarefa. Primeiramente você precisa saber o tamanho das pastas que você quer carregar na ram, para isso:

$ du -sch /bin/ /lib* /usr/lib* /usr/bin/ 


Isso lhe dará um sumário do tamanho total dessas pastas, adapte as suas necessidades.

Botando a Mão na Massa

Para saber a porcentagem do total desses arquivos que está carregada na RAM, use:

$ vmtouch /bin/ /lib* /usr/lib* /usr/bin/ 


Para jogar os arquivos para a ram, use:

 $ vmtouch -vt /bin/ /lib* /usr/lib* /usr/bin/ 


Para jogar os arquivos para a ram e travá-los lá:

 $ vmtouch -vdl /bin/ /lib* /usr/lib* /usr/bin/ 


Eles ficarão na ram até você removê-los ou dar um reboot na máquina, para removê-los:

 $ vmtouch -ve /bin/ /lib* /usr/lib* /usr/bin/ 



Exemplo real na minha máquina, quando comecei a rodar o processo o cache estava em 2,6 GB:


pylm@tuxtoo ~
free -h
total used free shared buff/cache available
Mem: 5,7G 1,2G 1,1G 198M 3,3G 4,2G
Swap: 8,0G 0B 8,0G
pylm@tuxtoo ~
free -h
total used free shared buff/cache available
Mem: 5,7G 1,2G 1,1G 198M 3,3G 4,2G
Swap: 8,0G 0B 8,0G
pylm@tuxtoo ~
free -h
total used free shared buff/cache available
Mem: 5,7G 1,2G 1,0G 198M 3,4G 4,1G
Swap: 8,0G 0B 8,0G
pylm@tuxtoo ~
free -h
total used free shared buff/cache available
Mem: 5,7G 1,2G 102M 184M 4,3G 4,2G
Swap: 8,0G 0B 8,0G
pylm@tuxtoo ~


Apesar da memória "livre" ser de apenas 100 MB, o sistema apenas ganhou responsividade (veja que o available não mudou) e agora tudo abre bem mais rápido pois já está cacheado na RAM.
Não recomendo usar o modo daemon do vmtouch (travar os arquivos na ram) pois se o sistema precisar não conseguirá desalocá-los e usará SWAP indo totalmente contra a ideia de acelerar a máquina.
Referência: https://www.linuxatemyram.com/


5. Re: Como diminuir cache de memória do sistema ?

Henrique
Henrique-RJ

(usa Outra)

Enviado em 26/04/2018 - 12:43h

@pylm

Mas não é isso que o preload faz ?


6. Re: Como diminuir cache de memória do sistema ?

Matheus
pylm

(usa Gentoo)

Enviado em 26/04/2018 - 14:52h

Henrique-RJ escreveu:

@pylm

Mas não é isso que o preload faz ?


Basicamente, entretanto o preload roda um daemon que tenta "aprender" os teus usos pra então carregar as libs, o vmtouch é um modo manual e mais confiável de fazer. Veja, se você usa uma distro debian-based pode listar os arquivos instalados por um pacote com isso:

dpkg-query -L pacote 


Com isso em mãos pode filtrar só as libs dele e mandar pro vmtouch carregar elas na ram, joga isso pra um script, adicione no boot e profit.


7. Re: Como diminuir cache de memória do sistema ?

Henrique
Henrique-RJ

(usa Outra)

Enviado em 26/04/2018 - 17:39h

pylm escreveu:

Henrique-RJ escreveu:

@pylm

Mas não é isso que o preload faz ?


Basicamente, entretanto o preload roda um daemon que tenta "aprender" os teus usos pra então carregar as libs, o vmtouch é um modo manual e mais confiável de fazer. Veja, se você usa uma distro debian-based pode listar os arquivos instalados por um pacote com isso:

dpkg-query -L pacote 


Com isso em mãos pode filtrar só as libs dele e mandar pro vmtouch carregar elas na ram, joga isso pra um script, adicione no boot e profit.


Eu usei a linha de comando " ld /diretório/aplicativo " para listar as dependências com seus diretórios dos aplicativos e escrevi esses diretórios no preload.conf em mapprefix e exeprefix mas não resolveu o que eu queria.

Tenho uma enorme dificuldade para entender como é esse gerenciamento de memória feito pelo sistema. Essa memória cache pra mim é um espaço na memória que o sistema mantém livre o tempo todo e se o consumo aumentar as dependências carregadas são fechadas para recuperar esse cache. É isso que talvez esteja acontecendo isto é, um desperdício de memória e por isso eu queria diminuir esse cache. Para agravar ainda tem o cache do preload que pela fórmula dele parece que é negativo em modo padrão e não sei porque. Acho que o cache é só uma reserva para garantir uma execução rápida e imediata de um aplicativo mas que é imediatamente recuperado com o fechamento de outras dependências antes carregadas caso não haja memória livre ( é por isso que ele diminui e aumenta ou flutua conforme são executadas as coisas ).

Acho que o que preciso mesmo é reduzir o tamanho desse cache do sistema pelo menos até á metade.

E nem adianta eu instalar mais um pente de memória de 2GB DDR2 no PC que o Firefox vai logo sair comendo mais assim como o sistema.


8. Re: Como diminuir cache de memória do sistema ?

Alberto Federman Neto.
albfneto

(usa Sabayon)

Enviado em 27/04/2018 - 17:19h

vc experimentou usar pacotes auto gestores de RAM, tipo o verynice
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
Albfneto,
Ribeirão Preto, S.P., Brasil.
Usuário Linux, Linux Counter: #479903.
Distros Favoritas: Sabayon, Gentoo, openSUSE, Mageia e OpenMandriva.


9. Re: Como diminuir cache de memória do sistema ?

Henrique
Henrique-RJ

(usa Outra)

Enviado em 27/04/2018 - 17:32h

albfneto escreveu:

vc experimentou usar pacotes auto gestores de RAM, tipo o verynice
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
Albfneto,
Ribeirão Preto, S.P., Brasil.
Usuário Linux, Linux Counter: #479903.
Distros Favoritas: Sabayon, Gentoo, openSUSE, Mageia e OpenMandriva.


Não

Já mudei o meu entendimento sobre esse cache ao visualizar o seu comportamento com um aplicativo que tenho instalado e que verifica o hardware.

Parece que esse cache de memória vai aumentando conforme são usados os aplicativos, a memória livre vai diminuindo e a usada vai aumentando.

É uma coisa bem dinâmica.



10. Re: Como diminuir cache de memória do sistema ?

Henrique
Henrique-RJ

(usa Outra)

Enviado em 27/04/2018 - 21:19h

pylm escreveu:

Se tiver falando da RAM, cê pode zerar ele manualmente:

free && sync && echo 3 > /proc/sys/vm/drop_caches && free 


Amanhã vou tentar essa linha de comando pra ver como fica.

Estive pesquisando e sei que tem mais duas opções e todas tem que ser executados como root no terminal.

Acho que essa linha de comando vai ser necessária usar após um certo tempo de uso do sistema durante o dia pois o cache vai aumentando e o acesso ao disco fica cada vez mais intenso afetando o carregamento dos programas.



12. Re: Como diminuir cache de memória do sistema ?

Henrique
Henrique-RJ

(usa Outra)

Enviado em 27/04/2018 - 22:08h



As linhas de comandos e outros procedimentos sugeridos nas páginas desses links são para tratamento do arquivo swap e não da memória cache que é a grande vliã aqui.

Essa maldita memória cache reservada pelo sistema acaba causando o fechamento das dependências dos aplicativos carregados devido ao esgotamento da memória livre que também tem um limite mínimo preservado pelo kernel.

Amanhã de manhã vou fazer uns testes pra ver como fica.



01 02