MC, 13:55 poniedziałek, 23.09.2013 r.
Ilustracja do artykułu: Linux free - Sprawdzanie ilości wolnej oraz zajmowanej pamięci RAM

Linux free - Sprawdzanie ilości wolnej oraz zajmowanej pamięci RAM

Czas powoli po dłuższej przerwie wracać do aktywności na stronie. Zatem na ten nowy początek, spróbujmy sprawdzić, jak na systemach Linux możemy ustalić ilość wolnej oraz używanej pamięci RAM.

Jak szybko sprawdzić stan pamięci RAM?

Oczywiście wiele systemów Linux wyposażonych jest narzędzia typu monitory systemu, w których graficznie możemy podejrzeć między innymi stan użycia pamięci RAM. W tym artykule chciałbym się jednak skupić na rozwiązaniach obsługiwanych z poziomu konsoli, tak by móc je wygodnie łączyć z innymi aplikacjami i stosować w różnych kontekstach.
Stąd bardzo dobrym rozwiązaniem może okazać się użycie polecenia free.

Jak używać programu free?

Jeszcze przed samym wydaniem komendy free, warto wiedzieć, że można ją uruchomić z flagą ustalającą jednostkę pamięci, jaka zostanie użyta podczas podania rezultatów. Te flagi to:
  • -b bajty B
  • -k kilobajty KB
  • -m megabajty MB
  • -g gigabajty GB

Spójrzmy więc na przykładowe wywołanie:

$ free -m
             total       used       free     shared    buffers     cached
Mem:          7456       1783       5673          0        193        593
-/+ buffers/cache:        996       6460
Swap:          904          0        904
Jak widać, trochę tych wartości jest. Jednak najczęściej interesuje nas liczba pamięci wolnej i zajętej przez procesy, dlatego najistotniejszy będzie dla nas wiersz:
-/+ buffers/cache:        996       6460
Zawiera on informację, że w chwili wywołania programu free, zajęte było 996 MB pamięci RAM, natomiast wolne 6460 MB. W sposób naturalny nasuwa się pytanie, dlaczego akurat patrzymy na ten wiersza, a nie na:
Mem:          7456       1783       5673
Powodowane jest to faktem, że systemy Linux cache-ują dane z dysku w pamięci RAM, aby zapewnić szybszy do nich dostęp, tyle tylko, że ma to formę usprawnienia działania systemu, ale nie jest to wcale koniecznie i takie cache-owane dane w pamięci mogą być bardzo szybko nadpisane, dlatego można je traktować jak pamięć wolną. I właśnie w wierszu "-/+ buffers/cache" podane są nam wartości, bez uwzględniania cache-y danych z dysku.

Zachęcam również do wydania komendy:

free --help
Dzięki której wylistowane zostaną inne przydatne funkcjonalności programu, jakie jak np. okresowe odświeżanie wartości stanu pamięci.

A co jeśli interesują nas konkretne procesy, a nie stan sumaryczny?

Czasem bardziej od stanu całkowitego pamięci, interesuje nas jej użycie przez konkretne procesy. W takich sytuacjach warto posłużyć się poleceniami top bądź htop, o których już wielokrotnie wspominałem na łamach strony.

Komentarze (6)

Imię:
Treść:
Świezy 2021-10-09 09:15:10
mnie nie pokazał sie wiersz -/+ buffers/cache: w ubuntu 20.04 musze poszukac innego sposobu
Twój nick 2021-05-27 17:11:01
omg ale wielkie litery
Administrator 2018-01-09 15:26:43
@Mandarynaka, miło słyszeć.
Mandarynaka 2018-01-09 11:03:03
Dzięki, artykuł okazał się bardzo pomocny "XDD"
Administrator 2017-08-21 10:41:16
@xDD - liczę, że artykuł okazał się pomocny :)
xDD 2017-08-20 00:32:45
Dzieki mordeczki