Mam stosunkowo niewielki domowy serwer Red Hat Linux (około 8 GB pamięci RAM). Nie używam go do innych celów niż uruchamianie domowych aplikacji do śledzenia różnych rzeczy. Jedynymi prawdziwymi rzeczami działającymi na urządzeniu są baza danych i serwer WWW.
Zauważyłem, że podczas sprawdzania liczników systemowych za pomocą narzędzi takich jak NMON i TOP, całkowita wolna pamięć systemowa jest stosunkowo niska (rzędu kilkuset MB), podczas gdy pamięć aktywna dla bazy danych i serwera WWW jest wciąż niska (tylko zużywające łącznie 3 GB). Nawet po uwzględnieniu wszystkich innych uruchomionych procesów całkowita zajętość pamięci jest mniejsza niż 4 GB.
Dlaczego Red Hat Linux zgłasza mniej wolnej pamięci niż pamięć całkowita minus suma pamięci używanej przez uruchomione procesy?
źródło
Linux aktywnie buforuje dostęp systemu plików do pamięci, aby skrócić czas dostępu do dysku. Nie ma się czym martwić.
Uruchomienie wolnego -m na pudełku da ci lepsze pojęcie o tym, gdzie używana jest pamięć.
Poniżej znajduje się wyjście pobrane z jednego z moich pudeł. Wolna pamięć to 147 Meg, z prawie 4G buforowanymi na potrzeby żądań dostępu do systemu plików.
źródło
Czy obejmujesz także pola „buforowane” i „buforowane”?
źródło
W Linuksie spójrz na Committed_AS w / proc / meminfo, jest to ilość pamięci (rzeczywista + zamiana), którą jądro rzeczywiście obiecało uruchomionym procesom.
Linux bardzo wydajnie korzysta z pamięci, wszelkie bloki, które nie są obiecane dla jakiegoś procesu, są używane do buforowania ostatnio / często używanych plików. Tak więc typowe jest, że Linux używa 90% całej dostępnej pamięci fizycznej niedługo po uruchomieniu.
Spójrz na to, co jądro zobowiązało się do zapewnienia .. i brudnego (zamiany) użycia, to daje lepszy ogólny obraz.
Jeśli chcesz dostosować to zachowanie, zaktualizuj swoje pytanie :)
Jest to standardowe MO dla Linuksa. Niektóre dystrybucje dostosowują zarządzanie pamięcią do swoich potrzeb poprzez sysctl. Jednak to, co zgłaszasz, jest dość typowe dla wszystkich.
źródło
Jakiego rodzaju jądro używasz w systemie? Jądro 32-bitowe zgłasza jedynie około 3,6 GB pamięci, chyba że zostanie skompilowane z włączonym PAE.
Mówiąc, że jeśli jest to nowoczesna wersja Redhat Enterprise Linux (lub CentOS) - od wersji v3 - domyślne 32-bitowe jądro będzie miało tę opcję włączoną.
Jeśli możesz opublikować wynik polecenia „darmowego” opisanego powyżej, będziemy mogli sprawdzić, czy to jest problem.
źródło