Virt-top расшифровка полей

virt-top

VIRT (Virtual memory) — отображает общий объём памяти, который может использоваться процессом в данный момент. Включает в себя реально используемую память, другую память (например — память видеокарты), файлы на диске, загруженные в память (например — файлы библиотек), и память, совместно используемую с другими процессами (SHR или Shared memory). Она же отображается как VSZ в результатах ps (Process status).

RES (Resident memory size) — отображает, сколько физической памяти занято процессом (используется для отображения в колонке %MEM в top-е). Она же отображается как RSS в результатах ps (Process status).

SHR (Shared Memory size) — отображает объём VIRT памяти, который используется процессом совместно с другими процессами, например — файлы библиотек.

SWAP (Swapped size) — память, которая в данный момент не используется (не-RES), но доступна процессу, при этом она «выгружена» в swap-раздел диска.

Из man 1 top:

o: VIRT — Virtual Image (kb)

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. (Note: you can define the STATSIZE=1 environment variable and

the VIRT will be calculated from the /proc/#/state VmSize field.)

p: SWAP — Swapped size (kb)

Per-process swap values are now taken from /proc/#/status VmSwap field.

q: RES — Resident size (kb)

The non-swapped physical memory a task has used.

RES = CODE + DATA.

VSZ  (VSS) — Virtual Size in Kbytes (alias vsize) или Virtual memory — особый уровень абстракции «над» архитектурой физической памяти.

Каждый процесс получает в использование виртуальное адресное пространство, и при обращении к адресу в нём — адрес сначала конвертируется в адрес физической памяти (main memory — MM, она же RAM) при помощи Memory Management Unit (MMU). 

Данные в виртуальном адресном пространстве могут располагаться в основной памяти, на диске (в swap-файле), сразу в обоих местах или на какой-то внешней памяти (например — памяти видеокарты).  Однако, как только процесс запрашивает какие-то данные, которые в настоящий момент не находятся в основной памяти системы — они туда загружаются. Таким образом, процесс не считывает данные напрямую с диска (memory mapping), но некоторые или все его ресурсы могут находится на «внешней памяти» в любое время, а его страницы памяти могут быть выгружены в swap, что бы освободить память для других процессов.

RSS — Resident Set Size — количество выеделенной процессу физической (MM) памяти в настоящий момент. Это физическая память, которая используется для рамзмещения страниц виртуальной памяти (virtual memory pages), которая используется процессом постоянно. RSS всегда будет менее или равна памяти VSZ.