Como usar o free -m para obter o uso de memória para todos os usuários

4

Eu digitei o comando free para obter o uso de memória da seguinte forma:

free -m 

saída:

Eu quero usar este comando para obter as mesmas informações, mas para todos os usuários, por exemplo:

Eu usei este comando ... porque é fácil para mim ... armazenar sua saída em variáveis em um script bash ...

    
por Akari 14.02.2014 / 16:06

2 respostas

5

free já se baseia no uso de memória em todo o sistema.

Se você quiser algo por usuário, pode tentar algo como:

ps aux | awk 'NR>2{arr[]+=}END{for(i in arr) print i,arr[i]}'

Como uma explicação rápida do que o awk faz:

  • Retira a primeira linha
  • Itera em cada linha e cria uma matriz de cada nome de usuário. Para cada um deles, adiciona a sexta coluna de ps aux (tamanho do conjunto de residentes) e adiciona-os.
  • Depois disso, basta percorrer as chaves do array para imprimir o conteúdo.
por Oli 14.02.2014 / 16:24
5

Uma opção é usar smem como free não oferece essa funcionalidade.

$ sudo smem -u -k -t
User     Count     Swap      USS      PSS      RSS 
daemon       1        0   196.0K   197.0K   360.0K 
rtkit        1        0   304.0K   317.0K     1.4M 
[...]
root        44        0   164.3M   197.7M   284.4M 
gert        88        0     1.7G     1.8G     3.2G 
---------------------------------------------------
           159        0     1.9G     2.1G     3.6G

Para uma explicação sobre o que USS e PSS significam, aqui está um trecho da manpage do smem.

            [...] Unshared memory is reported as the USS (Unique Set
   Size).  Shared memory is divided evenly among the processes shar‐
   ing that memory.  The unshared memory (USS) plus a process's pro‐
   portion of shared memory is reported as the PSS (Proportional Set
   Size).  The USS and PSS only include physical memory usage.  They
   do not include memory that has been swapped out to disk.

Eu suspeito RSS é o uso de memória residencial também conhecido como RES em outros utilitários. Para mais informações sobre a expressão do uso da memória, veja este Q & A no Superuser.com: O que devo saber sobre gerenciamento de memória?

    
por gertvdijk 14.02.2014 / 16:21