TL; DR 1
Twój serwer znajduje się w jakimś kontenerze wirtualnym / openvz / virtualization-du-jour . Zrozumienie wykorzystania pamięci polega na przechylaniu wiatraków.
TL; DR 2
Linux zjadł twoją pamięć RAM! Ale to dobrze, robi to wszystkim.
Długa historia
Rozbijmy to!
W Mem:
dziale mamy:
$n total
: ilość fizycznej pamięci RAM w twoim komputerze
$n used
: ile pamięci zużywa Linux, a nie tylko suma procesów.
$n free
: Ile pamięci RAM nie zużywa Linux. Nie bierze to pod uwagę, że buforowana i buforowana pamięć jest w zasadzie „wolna”.
$n buffers
: przestrzeń buforowa to miejsce, w którym przechowywane są bloki dysku we / wy odczytane lub oczekujące na zapis. Bufor jest reprezentacją pamięci RAM pojedynczego bloku dysku.
W Swap:
dziale mamy:
$n total
: Objaśniające. Ilość miejsca na dysku dostępna do zamiany stron.
$n used
: Objaśniające. Ile miejsca na dysku używa się.
$n free
: Herp Derp.
$n cache
: Ściśle związane z powyższymi buforami. W rzeczywistości jest częścią pamięci podręcznej strony i sama nie ma miejsca na dysku fizycznym. Nie martw się o szczegóły tej rozmowy.
Ciekawa część pojawia się, gdy biegniesz free -m
. Zobaczysz trzy linie, a wszystkie liczby będą skorelowane z górą. Podam mój własny komputer jako przykład:
total used free shared buffers cached
Mem: 8070 7747 323 0 253 5713
-/+ buffers/cache: 1780 6290
Swap: 5055 0 5055
Wiersz Mem pokazuje całkowitą pamięć RAM w megabajtach ( $n total
u góry), ile zużywa ( $n used
u góry), ile jest darmowej ( $n free
u góry), ile jest współdzielone (zignoruj to), a teraz przychodzi dobra część! buffers
I cached
kolumny w free -m
koreluje, przewidywalny, $n buffers
a $n cache
. Ale spójrz na drugi wiersz, free -m
który zaczyna się od tego -/+ buffers/cache:
. Matematyka pokazuje, że wykorzystana ilość jest naprawdę (ogółem) - ((używane bufory) buforowane). Bezpłatne jest (ogółem) - (theNewUsed).
Co to wszystko znaczy? Oznacza to, że Linux zjadł twoją pamięć RAM! Krótko mówiąc, jądro Linux pożera pamięć RAM, ponieważ jest dostępna do buforowania dysku. Nic nie możesz na to poradzić, chyba że masz ochotę skompilować niestandardowe jądro. Wskazówka: nie.
Pamięć RAM jest naprawdę dostępna i bezpłatna dla procesów do wykorzystania według ich uznania. To właśnie oznacza -/+ buffers/cache:
rząd w free -m
. Znajdujesz się jednak w kontenerze do wirtualizacji bez hiper-wizjera, co sprawia, że wszystko jest trochę zawirowane. W tym momencie po prostu nie można podsumować pamięci z dokładnością bajtów. Jednak nie widzisz żadnych zachowań, które są strasznie niezwykłe.
Zachowaj spokój i nie przerywaj. Zdobądź także serwer fizyczny (chyba że podoba Ci się pamięć, która wygląda jak Kreskin jest Twoim SysAdminem).