[Linux] Obtenha o uso da memória do sistema em tempo real via / proc / meminfo

Obtenha o uso da memória do sistema em tempo real via / proc / meminfo (Linux)

O kernel do linux fornece um mecanismo para acessar a estrutura de dados interna do kernel em tempo de execução através do sistema de arquivos / proc e alterar as configurações do kernel.O conceito básico do sistema de arquivos / proc do sistema linux em várias plataformas de hardware é o mesmo.
O sistema de arquivos / proc é um mecanismo usado pelo kernel e pelos módulos do kernel para enviar informações aos processos. Esse pseudo sistema de arquivos pode interagir com a estrutura de dados interna do kernel para obter informações do processo em tempo real. Observe que o sistema de arquivos / proc é armazenamento e memória, e não um disco rígido, e o sistema de arquivos virtual / proc é essencialmente uma interface para acessar dados do kernel na forma de um sistema de arquivos.

/ proc / meminfo

O arquivo / proc / meminfo no sistema Linux é usado para registrar os detalhes do uso da memória do sistema. Os dados nos comandos superior e livre são calculados a partir das informações neste arquivo e exibidas em um formato específico.
Detalhes do conteúdo / proc / meminfo:

$cat /proc/meminfo
MemTotal:        8052444 kB
MemFree:         2754588 kB
MemAvailable:    3934252 kB
Buffers:          137128 kB
Cached:          1948128 kB
SwapCached:            0 kB
Active:          3650920 kB
Inactive:        1343420 kB
Active(anon):    2913304 kB
Inactive(anon):   727808 kB
Active(file):     737616 kB
Inactive(file):   615612 kB
Unevictable:         196 kB
Mlocked:             196 kB
SwapTotal:       8265724 kB
SwapFree:        8265724 kB
Dirty:               104 kB
Writeback:             0 kB
AnonPages:       2909332 kB
Mapped:           815524 kB
Shmem:            732032 kB
Slab:             153096 kB
SReclaimable:      99684 kB
SUnreclaim:        53412 kB
KernelStack:       14288 kB
PageTables:        62192 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    12291944 kB
Committed_AS:   11398920 kB
VmallocTotal:   34359738367 kB
VmallocUsed:           0 kB
VmallocChunk:          0 kB
HardwareCorrupted:     0 kB
AnonHugePages:   1380352 kB
CmaTotal:              0 kB
CmaFree:               0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:      201472 kB
DirectMap2M:     5967872 kB
DirectMap1G:     3145728 kB

Explicação detalhada:

  • MemTotal: tamanho de toda a memória (RAM), menos espaço reservado e tamanho do kernel.

  • MemFree: Memória física não utilizada, lowFree + highFree

  • MemAvailable: Inicie um novo aplicativo sem usar espaço de troca.O tamanho máximo de memória disponível é calculado por MemFree + Ativo (arquivo) + Inativo (arquivo) - (marca d'água + min (marca d'água, Ativo (arquivo) + Inativo) (arquivo) / 2))

  • Buffers: páginas de cache ocupadas por dispositivos de bloco, incluindo: leitura e gravação direta de dispositivos de bloco e metadados do sistema de arquivos (metadados), como páginas de cache usadas pelo superbloco.

  • Em cache: representa a página de cache ocupada pelos dados comuns do arquivo.

  • SwapCached: O cache de troca contém páginas de memória anônimas que são determinadas como trocadas, mas ainda não foram gravadas na área de troca física. As páginas de memória anônima, como as páginas de memória aplicadas pelo processo do usuário malloc, não são associadas a nenhum arquivo.Se ocorrer troca, essa memória será gravada na área de troca.

  • Ativo: ativo contém anon ativo e arquivo ativo

  • Inativo: inativo an inativo anon file arquivo inativo

  • Ativo (anon): páginas anônimas (páginas anônimas), as páginas de memória dos processos do usuário são divididas em dois tipos: páginas de memória associadas a arquivos (como arquivos de programa, páginas de memória correspondentes a arquivos de dados) e páginas de memória não relacionadas à memória (como processos A pilha, a memória solicitada com malloc), a primeira é chamada de páginas de arquivo ou páginas mapeadas e a segunda é chamada de páginas anônimas.

  • Inativo (ânon): Veja acima

  • Ativo (arquivo): veja acima

  • Inativo (arquivo): veja acima

  • SwapTotal: O tamanho total do espaço de troca disponível (quando a partição de troca não possui memória física suficiente, uma parte do espaço em disco rígido é liberada para o programa atual)

  • SwapFree: o tamanho atual do swap restante

  • Sujo: o tamanho da memória que precisa ser gravada no disco

  • Writeback: o tamanho da área de memória que está sendo gravada de volta

  • AnonPages: o tamanho da memória de páginas não mapeadas

  • Mapeado: o tamanho do mapa, como dispositivos e arquivos

  • Laje: o tamanho da laje da estrutura de dados do kernel

  • SReclaimable: o tamanho da laje reciclável

  • SUnreclaim: tamanho da laje não reciclável

  • PageTables: gerenciar o tamanho da página da memória

  • NFS_Unstable: o tamanho da tabela de páginas instáveis

  • VmallocTotal: o tamanho da área de memória do Vmalloc

  • VmallocUsed: o tamanho da área de memória Vmalloc usada

  • VmallocChunk: o tamanho máximo contínuo disponível na área vmalloc

Publicado 397 artigos originais · Gostei 14 · Visitantes com mais de 100.000

Acho que você gosta

Origin blog.csdn.net/LU_ZHAO/article/details/105440428
Recomendado
Clasificación