top's podręcznika nie opisuje pola, ale freenic nie robi:
bufory
Pamięć używana przez bufory jądra ( Buffersin /proc/meminfo)
Pamięć podręczna
Pamięć używana przez pamięć podręczną strony i płyty ( Cachedi
SReclaimablew /proc/meminfo)
buff / cache
Suma buforów i pamięci podręcznej
dostępny
Oszacowanie ilości dostępnej pamięci do uruchamiania nowych aplikacji bez zamiany. W przeciwieństwie do danych dostarczanych przez pamięć podręczną lub wolne pola, to pole uwzględnia pamięć podręczną strony, a także, że nie wszystkie płyty pamięci, które można odzyskać, zostaną odzyskane z powodu użycia elementów ( MemAvailablew
/proc/meminfo, dostępne w jądrach 3.14, emulowane w jądrach 2.6.27+ , w przeciwnym razie to samo co za darmo)
Zasadniczo „buff / cache” zlicza pamięć używaną na dane znajdujące się na dysku lub powinna wkrótce się tam skończyć, w wyniku czego może być potencjalnie użyteczna (odpowiednia pamięć może zostać udostępniona natychmiast, w przypadku pamięci podręcznej lub dać wystarczającą ilość czasu, w przypadku buforów - te i tak powinny pozostać małe); Opcja „dostępna” mierzy ilość pamięci, którą można przydzielić i wykorzystać bez powodowania większej zamiany ( więcej szczegółów na ten temat można znaleźć w artykule Jak uzyskać przenośną ilość dostępnej pamięci między dystrybucjami? ).
Bufory / pamięć podręczna nie są udostępniane z wystarczającą ilością czasu ; są to segmenty pamięci, które są natychmiast dostępne, jeśli jakikolwiek program wymaga przydzielenia pamięci. Zobacz także linuxatemyram.com
DopeGhoti,
4
Wystarczy, aby wyjaśnić nieco, bufory odnosi się do danych, które jest napisane - że pamięć nie może zostać odzyskane, dopóki zapis jest kompletny.
Pamięć podręczna odnosi się do danych, które zostały odczytane - są przechowywane na wypadek, gdyby trzeba je ponownie odczytać, ale można je natychmiast odzyskać, ponieważ zawsze można je ponownie odczytać z dysku.
To nie tak naprawdę oznacza to tutaj. /proc/meminfoma pole Writebackspecjalnie. Istnieje osobne pole Buffersi to jest pokazane jak buffersw free -w. BuffersPokazano tutaj częsty powód użycia pamięci: „ 30% pamięci RAM to„ bufory ”. Co to jest? ”
sourcejedi
Z tego ( access.redhat.com/solutions/406773 ) zakładam , że zapis zwrotny jest tą częścią buforów, która nie została jeszcze zapisana na dysk. A może mówisz coś jeszcze?
WallStProg
Ten opis byłby mylący. Buffersjest (teraz) częścią pamięci podręcznej strony; nie jest liczony Cached, ale jest liczony jako część Active(file) + Inactive(file). Zobacz komentarze do odpowiedzi Stephena Kitta. Dirtyto część pamięci podręcznej strony, na której została zapisana, więc w końcu wymaga ponownego zapisania na dysk. Writebacknie obejmujeDirty . Dlatego Writebacknie jest częścią wartości Buffers.
sourcejedi
Co Bufferstak naprawdę oznacza pamięć podręczną strony powiązaną z urządzeniem blokowym. Niektóre systemy plików używają tego wewnętrznie; inni w ogóle go nie używają. / idzie naprawić moją odpowiedź na pytanie „30% mojej pamięci RAM to bufory”.
Bufory : Względnie tymczasowe miejsce do przechowywania surowych bloków dysku nie powinno być bardzo duże (około 20 MB)
Buforowane : pamięć podręczna dla plików odczytywanych z dysku (pamięć podręczna strony). Nie obejmuje SwapCached.
Pamięć podręczna stron systemu Linux („ Cached :” z meminfo) jest największym pojedynczym konsumentem pamięci RAM w większości systemów. Za każdym razem, gdy wykonujesz odczyt () z pliku na dysku, dane są wczytywane do pamięci i przechodzą do pamięci podręcznej strony (1.).
Pamięć podręczna buforów („ Buffers :” w meminfo) jest zbliżona do pamięci podręcznej dentry / inode.
Wystarczy, aby wyjaśnić nieco, bufory odnosi się do danych, które jest napisane - że pamięć nie może zostać odzyskane, dopóki zapis jest kompletny.
Pamięć podręczna odnosi się do danych, które zostały odczytane - są przechowywane na wypadek, gdyby trzeba je ponownie odczytać, ale można je natychmiast odzyskać, ponieważ zawsze można je ponownie odczytać z dysku.
źródło
/proc/meminfo
ma poleWriteback
specjalnie. Istnieje osobne poleBuffers
i to jest pokazane jakbuffers
wfree -w
.Buffers
Pokazano tutaj częsty powód użycia pamięci: „ 30% pamięci RAM to„ bufory ”. Co to jest? ”Buffers
jest (teraz) częścią pamięci podręcznej strony; nie jest liczonyCached
, ale jest liczony jako częśćActive(file) + Inactive(file)
. Zobacz komentarze do odpowiedzi Stephena Kitta.Dirty
to część pamięci podręcznej strony, na której została zapisana, więc w końcu wymaga ponownego zapisania na dysk.Writeback
nie obejmujeDirty
. DlategoWriteback
nie jest częścią wartościBuffers
.Buffers
tak naprawdę oznacza pamięć podręczną strony powiązaną z urządzeniem blokowym. Niektóre systemy plików używają tego wewnętrznie; inni w ogóle go nie używają. / idzie naprawić moją odpowiedź na pytanie „30% mojej pamięci RAM to bufory”.Kanonicznym źródłem tych informacji jest /usr/src/linux/Documentation/filesystems/proc.txt
Więcej szczegółów znajdziesz tutaj .
Lub przeanalizuj kod źródłowy w ten sposób .
Kwota
buffers
jest wartością zwracaną przez funkcjęnr_blockdev_pages(void)
Ilość
cached
:źródło