Aloca menos memória aos processos para carregar um conjunto de dados de 6.8 GB em R executado em máquina de 8 GB

0

Meu sistema ocioso (Ubuntu de 64 bits do GNOME 15.10) usa cerca de 2,5 GB de RAM após a reinicialização, ou seja, não há nenhum programa em execução lançado por mim. Nenhum dos aplicativos que eu instalei inicia na inicialização. Quais processos do sistema podem matar ou alocar menos memória com segurança para economizar cerca de 7 GB dos meus 8 GB por R ?

    
por rsl 19.01.2016 / 13:31

2 respostas

0

Após reiniciar, inicie imediatamente o terminal e emita o comando

free -m

Em seguida, observe os valores na segunda linha (- / + buffers / cache :). Na segunda coluna (usada) você verá o consumo real de RAM do seu sistema.

    
por S.R. 19.01.2016 / 14:01
0

Você provavelmente achará que a maior parte da memória em uso está no cache do buffer. A configuração padrão do Linux é armazenar em cache os dados do arquivo na memória quando a memória estiver disponível. Quando a pressão da memória aumenta (ou seja, mais aplicativos exigem memória), os dados no cache são descartados de maneira ordenada, se não estiverem sujos ou liberados (gravados) no disco, se estiverem sujos.

A contabilização do restante da memória que está sendo usada pelos aplicativos é um pouco complicada, pois os aplicativos compartilham a memória ao usar bibliotecas compartilhadas e mapeamentos de memória compartilhada. Você pode usar ferramentas como "smemstat" para ver quanto de memória está sendo usada por processos:

sudo apt-get install smemstat
smemstat

A coluna USS reporta o Tamanho do Conjunto Exclusivo (memória não compartilhada), a coluna PSS reporta o Tamanho do Conjunto Proporcional (proporção de memória compartilhada) e a coluna RSS informa o Tamanho do Conjunto Residente (memória física não trocada) usada por cada processo .

O arquivo / proc / meminfo também pode ser usado para ver como a memória está sendo utilizada, use:

cat /proc/meminfo

Para informações sobre todos os campos, por favor consulte o Documentação do Kernel do Linux nas interfaces / proc .

Se o seu aplicativo precisar de muita memória, o kernel descartará ou descartará páginas não utilizadas de outros processos, portanto, talvez você não precise eliminar processos para fornecer a memória necessária para seu aplicativo. Contanto que você tenha memória física suficiente livre para seu aplicativo + kernel + páginas ativas de outros processos em execução, você deverá ver o sistema rodando sem muita atividade de swap. O uso pode usar ferramentas como o vmstat para ver a troca em (si) e a atividade de swap (so) para checar isto:

vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0  45324  54252 147664 2897152    1    1    71    82   27  134  9  2 89  0  0
 3  0  45324  49924 147664 2902744    0    0   108     0 1570 7570 29  2 69  0  0
    
por Colin Ian King 19.01.2016 / 14:42