Dlaczego Linux nie wykorzystuje całej dostępnej pamięci

0

Mam Linux VPS, który ma 256 MB pamięci ( freeznajduje tylko 248). Wygląda jednak na to, że nadal mam 85 MB wolnego miejsca, ale zmieniam się na 255 MB. Dlaczego to?

free -m

              total       used       free     shared    buffers     cached
Mem:           248        245          3          0         41         40
-/+ buffers/cache:        163         85
Swap:         1971        255       1716
Devator
źródło

Odpowiedzi:

3

Masz 3 MB za darmo, a nie 85 MB. Ponieważ używasz 255 MB wymiany i tylko 88 MB pamięci, która mogłaby potencjalnie zostać użyta do przechowywania danych, które zostały zamienione, jądro nie ma innego wyboru niż zamiana co najmniej 167 MB. Powodem, dla którego zmienił się bardziej niż to, jest to, że jądro oceniało, że wydajność byłaby lepsza, gdyby używał tej pamięci do buforowania dysku (technicznie do buforowania stron) zamiast używać go do przechowywania danych aplikacji, do których ostatnio nie uzyskano dostępu.

Powodem, dla którego 3 MB jest wolne, jest poradzenie sobie z seriami obciążeń w kontekstach, w których pamięć nie może być łatwo zwolniona lub ponownie wykorzystana. Na przykład, jeśli nastąpił gwałtowny ruch sieciowy lub gdy dyskowe operacje we / wy zostały zakończone.

David Schwartz
źródło
1
Jeśli chodzi o to, dlaczego masz 3 zamiast 85, Linux uważa pamięć podręczną za bardziej wartościową niż strony aplikacji dla wydajności systemu, więc nie próbuje załadować ich z systemu wymiany.
Ignacio Vazquez-Abrams