Виртуальная память: что это такое?

Здесь будет рассказано о разных типах памяти, в разных ОС, при использовании разных диагностических утилит.

FreeBSD

— Active: Память которая используется в данный момент
— Inactive: Память, которая была освобождена, но до сих пор в кэше, так как он может быть использована снова. Если требуется больше свободной памяти, эта память может быть очищена и перейти во Free. Эта память не очищается до того, пока не нужно, чтобы сохранить старые данные на случай, если это понадобится снова.
— Wired: Память, которую использует ядро. Эта память не может быть выгружена в Swap
— Cache: Память, которая использовалась под кеш и может быть освобождена в любой момент
— Buffers: Память отдана под дисковый кеш
— Free: Память которая полностью свободна и готова к использованию.Inactive, Cache и Buffers могут стать частью свободной после полного освобождения
— Res: Чистая оперативная память, которую потребляет процесс
— Size: Res + shared-библиотеки (*.so) + стек + shared-memory + swap, которую потребляет процесс
— Shared: часть память, которая может использоваться одновременно несколькими процессами

Linux

— Virt: тоже самое, что и Size во FreeBSD
— SHR: тоже самое, что и Shared во FreeBSD
— RES: тоже самое, что и Res во FreeBSD

Solaris

— SIZE: тоже самое, что и Size во FreeBSD
— RSS: тоже самое, что и Res во FreeBSD

# echo ::memstat | mdb -k
Page Summary                 Pages             Bytes  %Tot
----------------- ----------------  ----------------  ----
Kernel                     8477914             32.3G   13%
Defdump prealloc            736681              2.8G    1%
ZFS Metadata               3143194             11.9G    5%
ZFS File Data              2108118              8.0G    3%
Anon                      13729696             52.3G   20%
Exec and libs                26340            102.8M    0%
Page cache                   79235            309.5M    0%
Free (cachelist)            943735              3.5G    1%
Free (freelist)           37821240            144.2G   56%
Total                     67106361            255.9G

— Kernel: память, потребляемая ядром
— Defdump prealloc: память необходимая для сохранения core dump, в системах, которые поддерживают отложенный дамп.
— ZFS Metadata и ZFS File Data: кеш соответственно под метаданные и непосредственно сами файлы. Ранее оно называлось одним общим — ZFS File Data
— Anon: Anonymous memory refers to pages that are not directly associated with a vnode. Such pages are used for a process’s heap space, its stack, and copy-in-write pages.
—  The page: the page cache is used for caching of file data for file systems other than the ZFS file system. The file system page cache grows on demand to consume available physical memory as a file cache and caches file data in page-size chunks. Pages are consumed from the free list as files are read into memory. The pages then reside in one of three places: the segmap cache, a process’s address space to which they are mapped, or on the cache list.
— Exec and libs: indicates executable/shared library paging.
— Freelist and the cache list hold pages that are not mapped into any address space that have been freed by page_free(). Though pages in the cache list are not really free, they still contain a valid vnode, offset pair and are a valid cache of pages from files. But pages in the free list are not associated with any vnode, offset pair. Pages are put on a free list when a process using those pages exit. Free (cachelist) + Free (freelist) = freemem(value for column “free” when “vmstat” is issued

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *