proc_meminfo(5)

NAZWA
/proc/meminfo - użycie pamięci

OPIS

/proc/meminfo
    Plik zawiera statystyki nt. użycia pamięci w systemie. Używa go free(1) do wskazania wielkości wolnej i użytej pamięci (zarówno fizycznej jak i wymiany) w systemie jak również pamięci dzielonej i buforów używanych przez jądro. Każdy wiersz składa się z nazwy parametru, dwukropka, wartości parametru i opcjonalnej jednostki pomiaru (np. „kB”). Poniższa lista opisuje nazwy parametrów i format wymagany do odczytu wartości pól. Z wyjątkiem wyraźnie wskazanych pól, wszystkie są obecne od co najmniej Linuksa 2.6.0. Część pól jest wyświetlanych tylko jeśli jądro zostało skonfigurowane z pewnymi opcjami, te zależności zaznaczono wówczas w opisie.

    MemTotal %lu
        Całkowity użyteczny RAM (tzn. pamięć fizyczna RAM - kilka zarezerwowanych bitów i kod binarny jądra).

    MemFree %lu
        Suma LowFree+HighFree.

    MemAvailable %lu (od Linuksa 3.14)
        Przybliżona wartość dostępnej pamięci do uruchamiania nowych aplikacji, bez pamięci wymiany.

    Buffers %lu
        Relatywnie tymczasowe miejsce przechowywania surowych bloków dyskowych które nie powinno być zbyt duże (rzędu 20 MB).

    Cached %lu
        Bufor w pamięci przeznaczony na plik odczytane z dysku (bufora strony). Nie obejmuje SwapCached.

    SwapCached %lu
        Pamięć, która została przeniesiona do pamięci wymiany jest później pobierana do pamięci i pozostawiana jednocześnie w pliku wymiany (jeśli jest duże zapotrzebowanie na pamięć, te strony nie muszą być ponownie przenoszone do pamięci wymiany, ponieważ już znajdują się w pliku wymiany. Unika się w ten sposób zbędnych operacji wejścia/wyjścia).

    Active %lu
        Pamięć która była ostatnio używana. Z reguły nie jest odzyskiwana poza absolutnie koniecznymi przypadkami.

    Inactive %lu
        Pamięć która była ostatnio słabiej używana. Nadaje się w większym stopniu do odzyskania do innych celów.

    Active(anon) %lu (od Linuksa 2.6.28)
        [do udokumentowania]

    Inactive(anon) %lu (od Linuksa 2.6.28)
        [do udokumentowania]

    Active(file) %lu (od Linuksa 2.6.28)
        [do udokumentowania]

    Inactive(file) %lu (od Linuksa 2.6.28)
        [do udokumentowania]

    Unevictable %lu (od Linuksa 2.6.28)
        (Od Linuksa 2.6.28 do Linuksa 2.6.30 wymagane było CONFIG_UNEVICTABLE_LRU). [do udokumentowania]

    Mlocked %lu (od Linuksa 2.6.28)
        (Od Linuksa 2.6.28 do Linuksa 2.6.30 wymagane było CONFIG_UNEVICTABLE_LRU). [do udokumentowania]

    HighTotal %lu
        (od Linuksa 2.6.19 wymagane jest CONFIG_HIGHMEM) Całkowita wielkość pamięci highmem. Jest to pamięć powyżej ~860 MB pamięci fizycznej. Obszary highmem są przeznaczone do użycia przez programy w przestrzeni użytkownika lub przez bufor strony. Jądro musi używać pewnych sztuczek aby uzyskać dostęp do tej pamięci, co czyni dostęp wolniejszym niż do pamięci lowmem.

    HighFree %lu
        (od Linuksa 2.6.19 wymagane jest CONFIG_HIGHMEM) Wielkość wolnej pamięci highmem.

    LowTotal %lu
        (od Linuksa 2.6.19 wymagane jest CONFIG_HIGHMEM) Wielkość całkowita pamięci lowmem. Lowmem to pamięć którą można użyć do tych samych celów co highmem, lecz jest również dostępna dla wewnętrznych struktur danych jądra. Jest to między innymi miejsce, gdzie przydzielane jest wszystko ze Slab. Gdy zabraknie pamięci lowmem należy się spodziewać złych wiadomości.

    LowFree %lu
        (od Linuksa 2.6.19 wymagane jest CONFIG_HIGHMEM) Wielkość wolnej pamięci lowmem.

    MmapCopy %lu (od Linuksa 2.6.29)
        (wymagane jest CONFIG_MMU) [do udokumentowania]

    SwapTotal %lu
        Całkowita wielkość dostępnej pamięci wymiany.

    SwapFree %lu
        Wielkość aktualnie nieużywanej pamięci wymiany.

    Dirty %lu
        Pamięć czekająca na ponowny zapis na dysk.

    Writeback %lu
        Pamięć zapisywana obecnie na dysk.

    AnonPages %lu (od Linuksa 2.6.18)
        Strony nie mające zapasu w postaci pliku zmapowane do tabel stron w przestrzeni użytkownika.

    Mapped %lu
        Pliki które zostały zmapowane do pamięci (za pomocą mmap(2)) np. biblioteki.

    Shmem %lu (od Linuksa 2.6.32)
        Wielkość pamięci zajętej przez systemy plików tmpfs(5).

    KReclaimable %lu (od Linuksa 4.20)
        Alokacje jądra, które jądro spróbuje odzyskać, jeśli będzie musiało odzyskać pamięć pod presją. Obejmuje to SReclaimable (poniżej) i inne bezpośrednie alokacje ze shrinkerem.

    Slab %lu
        Wewnętrzny bufor jądra przeznaczony na jego struktury danych. (Patrz slabinfo(5).)

    SReclaimable %lu (od Linuksa 2.6.19)
        Część Slab, która może być przypisana ponownie, taka jak pamięć podręczna.

    SUnreclaim %lu (od Linuksa 2.6.19)
        Część Slab niemogąca być przypisana ponownie przy małej ilości pamięci.

    KernelStack %lu (od Linuksa 2.6.32)
        Wielkość pamięci przypisana do stosów jądra.

    PageTables %lu (od Linuksa 2.6.18)
        Wielkość pamięci przypisana do najniższego poziomu tabel stron.

    Quicklists %lu (od Linuksa 2.6.27)
        (wymagane jest CONFIG_QUICKLIST) [do udokumentowania]

    NFS_Unstable %lu (od Linuksa 2.6.18)
        Strony NFS wysłane do serwera, lecz jeszcze nie wprowadzone na stabilny nośnik.

    Bounce %lu (od Linuksa 2.6.18)
        Pamięć używana do urządzenia blokowego „bounce buffer”.

    WritebackTmp %lu (od Linuksa 2.6.26)
        Pamięć używana przez FUSE do tymczasowych buforów pamięci z buforowaniem zapisu.

    CommitLimit %lu (od Linuksa 2.6.10)
        Jest to całkowita wielkość pamięci dostępnej obecnie do przydzielenia w systemie wyrażona w kilobajtach. Limit jest przestrzegany jedynie gdy włączono ścisłe rozliczanie overcommitu (tryb 2 w /proc/sys/vm/overcommit_memory). Limit jest obliczany na podstawie wzoru opisanego przy /proc/sys/vm/overcommit_memory. Więcej informacji znajduje się w pliku źródeł jądra Documentation/vm/overcommit-accounting.rst.

    Committed_AS %lu
        Wielkość pamięci obecnie przypisanej w systemie. Jest to suma pamięci zaalokowanej przez procesy, nawet jeśli jej jeszcze nie „użyły”. Proces alokujący 1 GB pamięci (za pomocą malloc(3) lub podobnej konstrukcji), używający jedynie 300 MB pamięci, będzie pokazywał użycie tych 300 MB pamięci, nawet jeśli przydzielił przestrzeń adresową dla całego 1 GB.

        Ten 1 GB to pamięć „zatwierdzona” przez VM, która może być użyta przez tę aplikację w dowolnym czasie. Gdy włączone jest ścisły overcommit (tryb 2 w /proc/sys/vm/overcommit_memory) alokacja która przekroczyłaby CommitLimit jest niedozwolona. Jest to przydatne do zagwarantowania, że proces nie zawiedzie z powodu braku pamięci po jej poprawnym przydzieleniu.

    VmallocTotal %lu
        Całkowity rozmiar obszaru pamięci vmalloc.

    VmallocUsed %lu
        Wielkość używanego obszaru vmalloc. Od Linuksa 4.4, wartość tego pola nie jest już obliczana i jest ustawiona na stałe na 0. Zob. /proc/vmallocinfo.

    VmallocChunk %lu
        Największy ciągły blok obszaru vmalloc, który jest wolny. Od Linuksa 4.4, wartość tego pola nie jest już obliczana i jest ustawiona na stałe na 0. Zob. /proc/vmallocinfo.

    HardwareCorrupted %lu (od Linuksa 2.6.32)
        (wymagane jest CONFIG_MEMORY_FAILURE) [do udokumentowania]

    LazyFree %lu (od Linuksa 4.12)
        Wyświetla wielkość pamięci oznaczonej jako MADV_FREE przez madvise(2).

    AnonHugePages %lu (od Linuksa 2.6.38)
        (wymagane jest CONFIG_TRANSPARENT_HUGEPAGE) Duże strony nie mające zapasu w postaci pliku zmapowane do tabel stron w przestrzeni użytkownika.

    ShmemHugePages %lu (od Linuksa 4.8)
        (wymagane jest CONFIG_TRANSPARENT_HUGEPAGE) Pamięć używana przez pamięć dzieloną (shmem) i tmpfs(5) zaalokowane z dużymi (huge) stronami.

    ShmemPmdMapped %lu (od Linuksa 4.8)
        (wymagane jest CONFIG_TRANSPARENT_HUGEPAGE) Pamięć dzielona zmapowana do przestrzeni użytkownika za pomocą dużych (huge) stron.

    CmaTotal %lu (od Linuksa 3.1)
        Łącznie stron CMA (Contiguous Memory Allocator) (wymagane jest CONFIG_CMA).

    CmaFree %lu (od Linuksa 3.1)
        Wolne strony CMA (Contiguous Memory Allocator) (wymagane jest CONFIG_CMA)

    HugePages_Total %lu
        (wymagane jest CONFIG_HUGETLB_PAGE) Rozmiar puli dużych stron.

    HugePages_Free %lu
        (wymagane jest CONFIG_HUGETLB_PAGE) Liczba dużych stron w puli, które nie są jeszcze przydzielone.

    HugePages_Rsvd %lu (od Linuksa 2.6.17)
        (wymagane jest CONFIG_HUGETLB_PAGE) Jest to liczba dużych stron które przeznaczono do przydzielenia z puli, lecz jeszcze jej nie przeprowadzono. Zarezerwowane duże strony gwarantują, że aplikacja będzie w stanie przypisać taką stronę w razie chybienia.

    HugePages_Surp %lu (od Linuksa 2.6.24)
        (wymagane jest CONFIG_HUGETLB_PAGE) Jest to liczba dużych stron z puli powyżej wartości /proc/sys/vm/nr_hugepages. Maksymalna liczba nadwyżki dużych stron jest kontrolowana przez /proc/sys/vm/nr_overcommit_hugepages.

    Hugepagesize %lu
        (wymagane jest CONFIG_HUGETLB_PAGE) Rozmiar dużych stron.

    DirectMap4k %lu (od Linuksa 2.6.27)
        Liczba bajtów RAM-u liniowo przypisanych przez jądro w stronach 4 kB (x86).

    DirectMap4M %lu (od Linuksa 2.6.27)
        Liczba bajtów RAM-u liniowo przypisanych przez jądro w stronach 4 MB (x86 z włączonym CONFIG_X86_64 lub CONFIG_X86_PAE).

    DirectMap2M %lu (od Linuksa 2.6.27)
        Liczba bajtów RAM-u liniowo przypisanych przez jądro w stronach 2 MB (x86 bez włączonego CONFIG_X86_64 ani CONFIG_X86_PAE).

    DirectMap1G %lu (od Linuksa 2.6.27)
        (x86 z włączonym CONFIG_X86_64 i CONFIG_X86_DIRECT_GBPAGES)

ZOBACZ TAKŻE
proc(5)

TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys <pborys@dione.ids.pl>, Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 (https://www.gnu.org/licenses/gpl-3.0.html) lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.