Diferenças entre o uso de swap por processo e a saída usada de troca livre ou meminfo

1

Eu estou tentando calcular todo o uso da memória de swap por um sistema Linux e vejo uma diferença entre a soma de todo o uso de swap por processos (calculado usando a linha abaixo) vs free ou meminfo output.

Uso total calculado da troca por:

for file in /proc/*/status ; do grep VmSwap $file; done | grep kB | grep -v "0 kB"

Parece que existem outros fatores que contribuem para o Swap Used.

    
por appuu5 11.09.2017 / 18:18

1 resposta

3

Existem pelo menos dois usuários de swap que você perdeu:

  1. tmpfs: Qualquer instância tmpfs montada (geralmente no mínimo / tmp e / run, com outros diretórios potencialmente incluídos) é suportada pelo espaço de troca. Normalmente, os dados em tmpfs estão no cache de páginas do kernel. No entanto, quando o sistema começa a ficar com pouca memória, esses dados podem ser forçados a trocar para que os dados sejam retidos enquanto ainda libera espaço para outras coisas. Até onde sei, o uso do tmpfs não é contabilizado em nenhum processo quando se calcula o uso do swap (de uma perspectiva prática, você não pode contabilizá-lo em qualquer processo, assim como não é possível contabilizar nenhum arquivo para um processo específico). O mesmo vale para as instâncias do hugetlbfs (o hugetlbfs é um tipo especial de tmpfs).
  2. Segmentos de memória compartilhada: Para segmentos de memória compartilhada POSIX nomeados, os dados são armazenados em / dev / shm, que é em si uma montagem tmpfs e cai sob o acima. Para segmentos de memória compartilhada anônimos, acredito (mas não tenho certeza e não tenho paciência ou habilidades para testar e testar) que o uso de espaço também não é considerado como um processo específico.

Pode haver outros usuários de swap, mas esses são os únicos usuários de swap sem processo que eu conheço com certeza.

    
por 11.09.2017 / 21:04