free -m: tamanho livre reduzido por causa do cache / buff

1

Estou usando a função rosbag de ROS . rosbag pode registrar muitos dados de outros nós ROS. Em uma palavra, ele irá gerar um arquivo enorme, como um arquivo de 200MB.

Depois de gerar esse arquivo, descobri que o buff / cache do sistema aumenta muito. Aqui está minha captura:

Antes de rosbag :

Apósrosbag:

Você pode ver que, depois de rosbag , buff/cache aumentou muito, ao mesmo tempo, free diminuiu de 19983 para 10896.

Eu não consigo entender. Pelo que entendi, free significa o tamanho livre da RAM, buff/cache é o tamanho do cache. Por que o cache pode usar o tamanho da RAM? E também descobri que, se eu excluísse o arquivo gerado por rosbag , o buff/cache retornaria de 17999 a 8925. Essa é a ação do sistema? Quando o buff/cache aumentará? Quando o buff/cache diminuirá?

    
por Yves 14.09.2018 / 04:42

1 resposta

3

Na saída de free :

  • "free" representa a memória que não é usada;
  • “buff / cache” representa a memória usada pelos buffers (dados na memória que estão esperando para serem gravados no disco) e cache (dados no disco que também estão disponíveis na memória);
  • "disponível" representa a quantidade de memória que um processo pode alocar e usar sem bater na troca (na maioria das vezes é esse valor que você deve se preocupar).

Quando um processo grava uma grande quantidade de dados, esses dados vão para os buffers antes de serem gravados no disco. Esses buffers ocupam espaço na memória, então a quantidade de memória não utilizada diminui. Mas essa memória pode ser disponibilizada, então a quantidade de memória disponível não diminui.

Quando você exclui o arquivo, os buffers não são mais necessários e são recuperados (não vale a pena mantê-los como cache).

Os buffers aumentam quando os processos gravam dados; eles diminuem quando esses dados são gravados no disco. O cache aumenta quando os dados em disco são disponibilizados na memória (lendo-os do disco ou convertendo buffers em cache); diminui quando a pressão da memória significa que não é mais útil mantê-la por perto. Ambos vivem na memória, portanto seu tamanho afeta a quantidade de memória livre; mas ambos podem ser recuperados, portanto, seu tamanho não afeta a quantidade de memória disponível.

    
por 14.09.2018 / 06:29