free to mała, szybka komenda, która pokazuje, ile pamięci RAM i przestrzeni swap aktualnie zużywa twój system Linux: ile jest zajęte, ile wolne, ile w buforach i cache, a ile realnie dostępne dla nowych programów. To pierwsza rzecz, po którą sięgasz, gdy serwer zaczyna mulić albo gdy chcesz sprawdzić, czy proces nie zjada całej dostępnej pamięci. Dane czyta z /proc/meminfo, więc działa natychmiast i bez żadnych uprawnień roota.
Składnia i najważniejsze opcje
Podstawowa składnia jest banalnie prosta: free [opcje]. Bez żadnej opcji dostajesz tabelkę w kibibajtach. W praktyce prawie zawsze dorzucasz jedną z flag jednostek:
-h,--human— wyświetla wartości w czytelnej formie (np.3,2Gi,512Mi) zamiast surowych liczb.-b/-k/-m/-g— wymusza jednostkę: bajty, kibibajty, mebibajty albo gibibajty.--si— używa potęg 1000 (KB, MB, GB) zamiast 1024, czyli „marketingowych” gigabajtów.-t,--total— dokłada wiersz Total sumujący RAM i swap razem.-s N,--seconds N— odświeża widok coNsekund w pętli, aż wciśniesz Ctrl+C.-c N,--count N— w trybie pętli wykonuje dokładnieNodświeżeń i kończy.-w,--wide— szeroki układ, rozdziela kolumny buffers i cache zamiast je sumować.
Przykłady użycia
free -h— najczęstszy strzał: zajętość RAM i swap w ludzkich jednostkach, jedno spojrzenie i wiesz, co się dzieje.free -m— wszystko w mebibajtach, wygodne, gdy porównujesz wartości albo wklejasz je do raportu.free -h -s 2— odświeża widok co 2 sekundy, idealne do obserwowania, jak pamięć rośnie podczas startu aplikacji.free -h -s 1 -c 5— pięć odczytów co sekundę i koniec, gdy chcesz krótką próbkę zamiast wiecznej pętli.free -ht— czytelne jednostki plus wiersz z sumą RAM i swap, przydatne przy szybkim bilansie zasobów.
Częste błędy i pułapki
Największa pomyłka juniorów: panika na widok niskiej wartości w kolumnie free. Linux celowo trzyma nieużywaną pamięć w cache, żeby przyspieszyć odczyty plików. Patrz na kolumnę available — to ona mówi, ile RAM-u realnie dostaną nowe programy bez sięgania do swap. Kolumna free bywa mała i to jest normalne.
Druga pułapka to jednostki: stare wersje free domyślnie pokazywały kibibajty, a flaga --si przełącza na potęgi 1000, więc te same dane wyglądają na większe. Pamiętaj też, że kolumny buffers/cache łączą się domyślnie — żeby je rozdzielić, użyj -w. I nie myl tego: free tylko raportuje, niczego nie zwalnia ani nie czyści.
Powiązane komendy: top, htop, vmstat, cat /proc/meminfo, swapon, ps.