/proc/meminfo - użycie pamięci
- /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)
Tłumaczenie niniejszej strony podręcznika: 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 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.