rzeczywiste wykorzystanie pamięci


15

jeśli dobrze rozumiem, na poniższym wyjściu wyprodukowanym przez free 3535m jest faktyczną wolną pamięcią dostępną dla aplikacji, użyto tylko 413m, czy to prawda? potrzebuję wyjaśnienia na temat różnicy między pamięcią i wierszami buforów / buforów - / +.

wolny -m
             Łącznie wykorzystane wolne buforowane bufory współdzielone
Mem: 3949 3854 95 0 9 3431
- / + bufory / pamięć podręczna: 413 3535
Zamiana: 2047 1322 725

Odpowiedzi:


16

Liczba Mem: totalta oznacza całkowitą ilość pamięci RAM, z której mogą korzystać aplikacje. Jest to całkowita pamięć RAM zainstalowana w systemie, minus:

  • pamięć zarezerwowana przez urządzenia sprzętowe (często pamięć wideo, jeśli karta graficzna nie ma własnej pamięci RAM);
  • pamięć używana przez samo jądro.

Suma ta obejmuje:

  • free: pamięć używana obecnie do dowolnego celu;
  • shared: koncepcja, która już nie istnieje. Zostaje on w danych wyjściowych w celu zachowania kompatybilności wstecznej (istnieją skrypty analizujące dane wyjściowe free). (W obecnych systemach zazwyczaj widzisz niezerowe wartości, ponieważ sharedzostały one zmienione w celu pokazania pamięci, która jest jawnie współdzielona za pośrednictwem mechanizmu pamięci współużytkowanej . W starszych systemach zawierała pliki zmapowane przez więcej niż jeden proces i pamięć współdzieloną, która pozostała współdzielona po fork().)
  • buffers: pamięć tworzona przez pliki, którą w razie potrzeby można zapisać na dysk;
  • cache: pamięć wspierana przez pliki, którą można odzyskać w dowolnym momencie (różnica bufferspolega na tym, że bufory muszą zostać zapisane na dysku przed ich ponownym użyciem , podczas gdy pamięć podręczna składa się z rzeczy, które można ponownie załadować z dysku);
  • used -buffers/cache: pamięć używana przez aplikacje (a nie stronicowana w celu wymiany).

W skrócie, system może działać bez buforów i pamięci podręcznej, rezerwując pamięć RAM dla aplikacji i systematycznie wykonując odczyt i zapis dysku bez buforowania. Te -/+ buffers/cachedane wskazują, ilość pamięci RAM stosowany bezpośrednio Applications ( usedkolumny), a ilość pamięci RAM, stosowany przez aplikacje ( freekolumny).

Chociaż może się to znacznie różnić, zdrowy system zazwyczaj ma około połowy pamięci RAM przeznaczonej na aplikacje, a połowa na bufory i pamięć podręczną. O ile nie korzystasz z dedykowanego serwera plików, twój system ma więcej pamięci RAM, niż potrzebuje do tego, co obecnie robisz. Gdyby free - buffers/cacheliczba była niska, oznaczałoby to system, który nie ma wystarczającej ilości pamięci RAM (wbrew powszechnemu przekonaniu, posiadanie dużej ilości pamięci przeznaczonej na bufory i pamięć podręczną jest ważne dla wydajności systemu, a próba zarezerwowania większej ilości pamięci dla aplikacji spowolnienie 99,99% systemów).

swapLinia jest prosta, to pokazuje ilość miejsca wymiany, który jest w użyciu (albo przez aplikacje lub tmpfsmagazynowania) oraz kwotę, która nie jest.


1
„udostępniono: koncepcja, która już nie istnieje.” - wygląda na to, że została ponownie wprowadzona w latach 2011–2016: unix.stackexchange.com/questions/307015/…
Marisha,

3

Tak, masz rację. Bufory i pamięć podręczna są używane przez system operacyjny, ale są natychmiast dostępne dla aplikacji. System operacyjny chce unieważnić i wyrzucić część pamięci podręcznej w celu spełnienia następnego żądania pamięci.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.