proc_meminfo(5)

НАИМЕНОВАНИЕ
/proc/meminfo - memory usage

ОПИСАНИЕ

/proc/meminfo
    Этот файл содержит статистику по использованию памяти системы. Он используется программой free(1) для формирования отчёта о свободной и используемой памяти (как физической, так и подкачки), а также общей памяти и памяти под буферы, которую использует ядро. В каждой строке файла содержится имя параметра, двоеточие, значение параметра и необязательная единица измерения (например, «kB»). В списке далее описываются параметры и определитель формата, требуемый для чтения значения поля. За исключением замечаний, представленных ниже, все показанные поля имеются начиная с Linux 2.6.0. Некоторые поля появляются только, если ядро собрано с определёнными параметрами; это зависимости также показаны в списке.

    MemTotal %lu
        Общее количество используемой RAM (т.е. физической RAM минус несколько зарезервированных бит и исполняемый код ядра).

    MemFree %lu
        Сумма LowFree+HighFree.

    MemAvailable %lu (начиная с Linux 3.14)
        Предполагаемое количество памяти, доступное для запуска новых приложений, без обращения к подкачке.

    Buffers %lu
        Относительно временное хранилище сырых дисковых блоков, которое не должно быть очень велико (порядка 20 МБ).

    Cached %lu
        Кэш в памяти для прочитанных дисковых файлов (страничный кэш). Не включает SwapCached.

    SwapCached %lu
        Память, которая однажды попала в подкачку, выгрузилась обратно в память, но всё равно остаётся в файле подкачки (если нагрузка на память велика, эти страницы не придётся снова выгружать, так как они уже в файле подкачки — предотвращается ввод-вывод).

    Active %lu
        Память, которая часто использовалась и обычно не высвобождается без сильной необходимости.

    Inactive %lu
        Память, которая редко использовалась. Кандидат на высвобождение для других нужд.

    Active(anon) %lu (начиная с Linux 2.6.28)
        [Будет описано.]

    Inactive(anon) %lu (начиная с Linux 2.6.28)
        [Будет описано.]

    Active(file) %lu (начиная с Linux 2.6.28)
        [Будет описано.]

    Inactive(file) %lu (начиная с Linux 2.6.28)
        [Будет описано.]

    Unevictable %lu (начиная с Linux 2.6.28)
        (From Linux 2.6.28 to Linux 2.6.30, CONFIG_UNEVICTABLE_LRU was required.) [To be documented.]

    Mlocked %lu (начиная с Linux 2.6.28)
        (From Linux 2.6.28 to Linux 2.6.30, CONFIG_UNEVICTABLE_LRU was required.) [To be documented.]

    HighTotal %lu
        (Starting with Linux 2.6.19, CONFIG_HIGHMEM is required.) Total amount of highmem. Highmem is all memory above ~860 MB of physical memory. Highmem areas are for use by user-space programs, or for the page cache. The kernel must use tricks to access this memory, making it slower to access than lowmem.

    HighFree %lu
        (Начиная с Linux 2.6.19, требуется параметр CONFIG_HIGHMEM.) Количество свободной highmem.

    LowTotal %lu
        (Начиная с Linux 2.6.19, требуется параметр CONFIG_HIGHMEM.) Общее количество lowmem. Lowmem — это память, используемая для всего, что и highmem, но также доступна и для структур ядра. Среди прочего, выделяется для Slab. Когда заканчивается lowmem происходят нехорошие вещи.

    LowFree %lu
        (Начиная с Linux 2.6.19, требуется параметр CONFIG_HIGHMEM.) Количество свободной lowmem.

    MmapCopy %lu (начиная с Linux 2.6.29)
        (Требуется параметр CONFIG_MMU.) [Будет описано.]

    SwapTotal %lu
        Общее количество доступного пространства подкачки.

    SwapFree %lu
        Общее количество неиспользуемого пространства подкачки.

    Dirty %lu
        Память, которая ждёт записи обратно на диск.

    Writeback %lu
        Память, которая переписывается обратно на диск.

    AnonPages %lu (начиная с Linux 2.6.18)
        Не файловые фоновые (backed) страницы, отображённые в страничные таблицы пользовательского пространства.

    Mapped %lu
        Отображённые в память файлы (с помощью mmap(2)), например библиотеки.

    Shmem %lu (начиная с Linux 2.6.32)
        Объём памяти, использованной в файловых системах tmpfs(5).

    KReclaimable %lu (начиная с Linux 4.20)
        Выделения ядра, которые оно будет пытаться отозвать при нехватки памяти. Включают SReclaimable (смотрите ниже) и другие непосредственные выделения сокращателя (shrinker).

    Slab %lu
        Кэш ядерных структур данных (смотрите slabinfo(5)).

    SReclaimable %lu (начиная с Linux 2.6.19)
        Часть Slab, которая может быть высвобождена, например кэши.

    SUnreclaim %lu (начиная с Linux 2.6.19)
        Часть Slab, которая не может быть высвобождена при нехватке памяти.

    KernelStack %lu (начиная с Linux 2.6.32)
        Количество памяти, выделенное под стеки ядра.

    PageTables %lu (начиная с Linux 2.6.18)
        Количество памяти, выделенное под страничные таблицы на самом нижнем уровне.

    Quicklists %lu (начиная с Linux 2.6.27)
        (Требуется параметр CONFIG_QUICKLIST.) [Будет описано.]

    NFS_Unstable %lu (начиная с Linux 2.6.18)
        Страницы NFS, полученные сервером, но ещё не записанные в стабильное хранилище.

    Bounce %lu (начиная с Linux 2.6.18)
        Память, используемая для блочного устройства «bounce buffers».

    WritebackTmp %lu (начиная с Linux 2.6.26)
        Память, используемая FUSE для временных буферов обратной записи.

    CommitLimit %lu (начиная с Linux 2.6.10)
        Общее количество памяти, доступное в данный момент в системе для выделения, выражается в байтах. Данное ограничение соблюдается только, если включён жёсткий учёт перерасчёта (strict overcommit accounting) (режим 2 в /proc/sys/vm/overcommit_memory). Ограничение вычисляется по формуле, описанной в разделе про /proc/sys/vm/overcommit_memory. Подробности смотрите в файле исходного кода ядра Documentation/vm/overcommit-accounting.rst.

    Committed_AS %lu
        Количество памяти, распределённое в системе в данный момент. Задействованная память (committed memory) — это сумма всей памяти, распределённая среди всех процессов, даже если она ими ещё не «используется». Для процесса, взявшего 1 ГБ памяти (например, с помощью malloc(3)), но задействовавшего только 300 МБ этой памяти, будет показано что используются только 300 МБ, даже если ему отдано адресное пространство 1ГБ.

        Этот 1 ГБ памяти «задействован» VM и может быть использован запросившим приложением в любое время. При включённом режиме жёсткого учёта перерасхода (режим 2 в /proc/sys/vm/overcommit_memory), запросы, которые превысили бы CommitLimit (подробности выше), выполнены не будут. Это полезно, если нужно гарантировать, что процессы не завершатся из-за нехватки памяти после того, как память им будет успешно выделена.

    VmallocTotal %lu
        Общий размер области памяти vmalloc.

    VmallocUsed %lu
        Размер используемой области vmalloc. Начиная с Linux 4.4 это поле не вычисляется и всегда равно 0. Смотрите /proc/vmallocinfo.

    VmallocChunk %lu
        Самый большой свободный непрерывный блок области vmalloc. Начиная с Linux 4.4 это поле не вычисляется и всегда равно 0. Смотрите /proc/vmallocinfo.

    HardwareCorrupted %lu (начиная с Linux 2.6.32)
        (Требуется параметр CONFIG_MEMORY_FAILURE.) [Будет описано.]

    LazyFree %lu (начиная с Linux 4.12)
        Отражает количество памяти, помеченной вызовом madvise(2) MADV_FREE.

    AnonHugePages %lu (начиная с Linux 2.6.38)
        (Требуется параметр CONFIG_TRANSPARENT_HUGEPAGE.) Не файловые фоновые огромные страницы, отображённые в страничные таблицы пользовательского пространства.

    ShmemHugePages %lu (начиная с Linux 4.8)
        (требуется CONFIG_TRANSPARENT_HUGEPAGE) Память, используемая для выделения огромных страниц под общую память (shmem) и tmpfs(5).

    ShmemPmdMapped %lu (начиная с Linux 4.8)
        (Требуется CONFIG_TRANSPARENT_HUGEPAGE.) Общая память, отображённая в пользовательское пространство огромными страницами.

    CmaTotal %lu (начиная с Linux 3.1)
        (Требуется CONFIG_CMA.) Общее количество страниц CMA (выделитель непрерывной памяти).

    CmaFree %lu (начиная с Linux 3.1)
        (Требуется CONFIG_CMA.) Количество свободных страниц CMA (выделитель непрерывной памяти).

    HugePages_Total %lu
        (Требуется параметр CONFIG_HUGETLB_PAGE.) Размер пула огромных страниц.

    HugePages_Free %lu
        (Требуется параметр CONFIG_HUGETLB_PAGE.) Количество нераспределённых огромных страниц в пуле.

    HugePages_Rsvd %lu (начиная с Linux 2.6.17)
        (Требуется параметр CONFIG_HUGETLB_PAGE.) Количество огромных страниц, для которых есть обязательство по распределению в пуле, но которые ещё не распределены. Эти зарезервированные огромные страницы гарантируют, что приложение сможет получить огромную страницу из пула огромных страниц при нехватке памяти.

    HugePages_Surp %lu (начиная с Linux 2.6.24)
        (Требуется параметр CONFIG_HUGETLB_PAGE.) Количество огромных страниц в пуле выше значения в /proc/sys/vm/nr_hugepages. Максимальное число избыточных огромных страниц настраивается в /proc/sys/vm/nr_overcommit_hugepages.

    Hugepagesize %lu
        (Требуется параметр CONFIG_HUGETLB_PAGE.) Размер огромных страниц.

    DirectMap4k %lu (начиная с Linux 2.6.27)
        Количество байт RAM линейно отображаемых ядром в 4 КБ страницы. (x86.)

    DirectMap4M %lu (начиная с Linux 2.6.27)
        Количество байт RAM линейно отображаемых ядром в 4 МБ страницы. (x86 с включённым CONFIG_X86_64 или CONFIG_X86_PAE).

    DirectMap2M %lu (начиная с Linux 2.6.27)
        Количество байт RAM линейно отображаемых ядром в 2 МБ страницы. (x86 с выключенными CONFIG_X86_64 и CONFIG_X86_PAE).

    DirectMap1G %lu (начиная с Linux 2.6.27)
        (x86 с включёнными CONFIG_X86_64 и CONFIG_X86_DIRECT_GBPAGES)

СМОТРИТЕ ТАКЖЕ
proc(5)

ПЕРЕВОД
Русский перевод этой страницы руководства разработал(и) Alexey, Azamat Hackimov <azamat.hackimov@gmail.com>, kogamatranslator49 <r.podarov@yandex.ru>, Darima Kogan <silverdk99@gmail.com>, Max Is <ismax799@gmail.com>, Yuri Kozlov <yuray@komyakino.ru>, Иван Павлов <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков (<debian-l10n-russian@lists.debian.org>).