Diferenças e relações entre VIRT e USED na saída de topo?

5

A partir da página de manual de top

VIRT  --  Virtual Memory Size (KiB)
           The total amount of virtual memory used by the task.  It includes
           all code, data and shared libraries plus pages that have been
           swapped out and pages that have been mapped but not used.

USED  --  Memory in Use (KiB)
           This field represents the non-swapped physical memory a task has
           used (RES) plus the non-resident portion of its address space
           (SWAP).

Parece-me que VIRT e USED significam o mesmo, ou seja, são a soma do que um processo ocupa na memória física e o que na troca. Então, quais são suas diferenças e relações?

A propósito, por padrão, top não aparece USADO. Como posso tornar isso visível?

    
por Tim 13.06.2016 / 14:20

2 respostas

10

  • RES é a quantidade de RAM usada atualmente pelo processo. Esse valor pode variar porque as páginas de memória podem ser trocadas para dentro ou para fora. Pode até ser 0 para um processo que está dormindo há muito tempo, por ex. um daemon não solicitado.

  • VIRT é o tamanho total de toda a memória que o processo está usando, seja na RAM ou no disco (objetos compartilhados, arquivos mmaped, área de troca), portanto a VIRT é sempre maior ou igual a RES. Um processo está sempre lidando com (ou seja, alocando / acessando / liberando) a memória virtual. Cabe ao sistema operacional mapear algumas ou todas essas páginas para a RAM.

  • USADO é menor que VIRT porque não inclui a memória que é suportada por algo diferente de swap, por exemplo, código e bibliotecas.

por 13.06.2016 / 15:42
1

RES significa a memória real atribuída atualmente ao processo em execução na (memória física) residente na RAM .

VIRT mostra a memória virtual (atribuída no disco rígido e / ou RAM) ao processo (como explicado na página man).

USADO = RES + parte do executável que atualmente não está na RAM. ps mostra VIRT usando vsz flag.

    
por 13.06.2016 / 14:50