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.