É possível limitar a memória cache a um processo?

0

Estou usando a ferramenta de captura de rede chamada dumpcap e está consumindo muita memória cache.

Assim, outros processos não recebem memória para serem executados.

O comando

htop exibiu a memória cache como 29 GB em Meters.

Alguém pode ajudar a obter uma solução para isso?

    
por Binu Babu 12.03.2015 / 07:01

1 resposta

0

Não há problema, então você não precisa fazer nada.

A questão é entender mal como funciona o cache do sistema. O cache do sistema não ocupa memória, evitando que seja usado por processos. Apenas ocupa a memória disponível. Quando a memória não estiver mais disponível porque um processo a alocou, ela não será mais usada pelo cache do sistema.

O abaixo é uma forma editada de uma resposta que eu fiz para uma pergunta diferente :

Como o Linux usa RAM (muito simplificado)

Cada aplicativo pode usar parte de sua memória. O Linux usa toda a memória desocupada (exceto nos últimos Mb) como "cache". Isso inclui o cache de páginas, caches de inode, etc. Isso é bom - ajuda a agilizar as coisas. Tanto a gravação em disco quanto a leitura em disco podem ser aceleradas imensamente pelo cache.

O ideal é que você tenha memória suficiente para todos os seus aplicativos e ainda tenha várias centenas de Mb restantes para o cache. Nessa situação, contanto que seus aplicativos não aumentem o uso de memória e o sistema não esteja colocando muita pressão no cache, não há necessidade de qualquer troca.

Uma vez que os aplicativos reivindicam mais RAM, ele simplesmente entra em algum espaço usado pelo cache, encolhendo o cache. A alocação de cache é barata e fácil o bastante para ser feita em tempo real - tudo o que fica no cache é apenas uma segunda cópia de algo que já está no disco, então pode ser desalocada instantaneamente, ou é algo que gostaríamos teve que liberar para o disco dentro dos próximos segundos de qualquer maneira , portanto, não há nenhum impacto no desempenho ao realocar o cache para os aplicativos.

Assim, quando uma ferramenta se refere à RAM "livre", você precisa esclarecer se ela está incluindo o cache como "livre" ou não. O cache deve ser considerado como "livre", mesmo que ferramentas como ps e free não o incluam na contagem "livre".

Esta não é uma situação específica do Linux - todos os sistemas operacionais modernos funcionam dessa maneira. Os diferentes sistemas operacionais podem relatar a RAM livre de forma diferente: alguns incluem o cache como parte do que consideram "livre" e outros não.

Quando você fala sobre RAM livre, é muito mais significativo incluir o cache , porque é praticamente gratuito - ele está disponível em qualquer aplicativo que o solicite. No Linux, o comando free relata as duas formas - a primeira linha inclui o cache na coluna RAM usada e a segunda linha inclui o cache (e os buffers) na coluna livre.

    
por thomasrutter 12.03.2015 / 07:11