Używam Monitora systemu 2.28.0. Kiedy patrzę na kartę Zasoby, widzę ładny wykres z pamięcią i zamianą. Pamięć wynosi około 60% 2,3 GiB z 3,8. Kiedy wpisuję polecenie za darmo, otrzymuję:
total used free shared buffers cached
Mem: 3994908 3962396 32512 0 100852 1477032
-/+ buffers/cache: 2384512 1610396
Swap: 8000328 28468 7971860
cat / proc / meminfo | grep MemFree dają
MemFree: 34536 kB
Sytuacja pozostawała bezpieczna przez kilka minut. Zacząłem wiele procesów od skryptu i skrypt czeka na obniżenie wolnej pamięci. Zgodnie z tym, co widzę na karcie Proces (lub u góry), liczba w Monitorze systemu wydaje się być bardzo zamknięta w stosunku do całkowitej pamięci procesu, którą zgłosił za darmo.
Dzięki
źródło
Kiedy dostałem rękę na monitorze systemu, użycie pamięci zgłoszone na karcie „Zasoby” było takie samo jak w
free
kolumnie w/usr/bin/free
.Problem polega na tym, że wolna pamięć fizyczna wynosi prawie 0, wkrótce lub później: Linux buforuje agresywnie, więc pieniądze wydane na zakup pamięci RAM są efektywnie wykorzystywane. A to oznaczało, że wykres stale pokazuje> 98% zużycia pamięci, co było bezużyteczne.
Więc ja / my postanowiliśmy zrobić tak jak
-/+ buffers/cache:
linia/usr/bin/free
. W ten sposób wykres ma sens i pozwala użytkownikowi obserwować użycie pamięci ~ aplikacji / przestrzeni użytkownika zamiast stanu fizycznego pamięci.Wiem, że jest to nieco mylące, ponieważ większość (1) użytkowników nie rozumie, że wolna pamięć fizyczna to strata pieniędzy i wydajności. W pracy napotkałem ten sam problem: w każdy poniedziałek serwery uruchamiały się ponownie, a w ciągu następnych 24 godzin każdy serwer uruchamiał alert „zapełnienie pamięci”. Więc miałem wolne obliczenia pamięci naprawione w oprogramowaniu nadzorującym, tak jak w systemie-monitorze.
Obecny system Solaris ma ten sam problem: pamięć podręczna ZFS (ARC) nie jest zawarta w wolnej pamięci zgłaszanej przez narzędzia takie,
vmstat
co sprawia, że głupi administratorzy DB narzekają, że „ZFS jest zły” :)źródło