Użyłem top
zobaczyć zużycie pamięci w tej chwili. Chciałbym jednak monitorować zużycie pamięci przez pewien czas. Np. Rozpocznij monitorowanie, a następnie wykonaj kilka poleceń, a następnie zatrzymaj monitorowanie i sprawdź, ile pamięci wykorzystano w tym okresie.
Jak mogę to zrobić na serwerze Ubuntu?
Chyba mógłbym rozpocząć cronjob co około 5 sekund i wywołać polecenie, które rejestruje bieżące użycie pamięci w pliku tekstowym. Ale jakiego polecenia powinienem użyć, aby uzyskać bieżące wykorzystanie pamięci w formacie łatwym do zalogowania do pliku tekstowego?
2896
a następnie w1528
przypadku buforów, nie oznacza to, że używasz2896 + 1528
?Mem: used
to całkowita wykorzystana pamięć.-/+ buffers/cache: used
to całkowita wykorzystana pamięć minus bufory i pamięć podręczna. Wiem, że dane wyjściowe wyglądają zabawnie, ale tutaj nie jest wymagana arytmetyka. Po prostu szukasz używanego / wolnego w rzędzie buforów - / + / cache.free -h
, np.watch -n 5 free -h
aby uzyskać wyjście „czytelne dla człowieka”, np.2.1G
zamiast2170
w wyjściu.Myślę, że
htop
to najlepsze rozwiązanie.sudo apt-get install htop
W ten sposób zauważysz, które programy używają najwięcej pamięci RAM. i możesz łatwo rozwiązać jeden, jeśli chcesz. Oto zrzut ekranu!
źródło
htop
jest fajny, ponieważ jest bardziej „graficzny” i prawdopodobnie łatwiejszy do odczytania niżfree
.RES
pamięć używana przez tę aplikację jest w MB? CO TO JESTSHR
?htop
pokazuje „zużycie pamięci przez pewien okres czasu”?Jeśli szukasz dobrego podziału pamięci używanej przez każdy uruchomiony proces, polecam sprawdzenie ps_mem.py (znalezione tutaj na pixelbeat.org).
Wiem, że w powyższych komentarzach wspomniałeś, że chcesz mieć migawkę jednowierszową za darmo , ale pomyślałem, że inni mogą uznać to za przydatne.
Przykładowe dane wyjściowe:
Jedyne, co mi się nie podoba, to fakt, że skrypt twierdzi, że wymaga uprawnień roota. Nie miałem jeszcze okazji dowiedzieć się, dlaczego tak się dzieje.
źródło
pip install ps_mem
) i na GitHub .Użyj darmowego polecenia. Na przykład jest to wynik
free -m
:free -m | grep /+
zwróci tylko drugą linię:źródło
947
jest użycie pamięci minus pamięć używana dla buforów i pamięci podręcznych?Polecenie watch może być przydatne. Spróbuj
watch -n 5 free
monitorować wykorzystanie pamięci za pomocą aktualizacji co pięć sekund.źródło
Możesz to zrobić za pomocą
cat /proc/meminfo
.źródło
watch cat /proc/meminfo
free
Komenda czerpie informacje z/proc/meminfo
i prezentuje je w zwarty sposób. Użyjfree -h
do odczytu czytelnego dla człowieka.W przypadku wizualnego monitorowania całkowitego zużycia pamięci RAM, jeśli używasz Byobu , utrzyma ono użycie pamięci w prawym dolnym rogu terminala i będzie działać, gdy będziesz w dowolnej sesji terminala.
Jak widać na zrzucie ekranu, moja maszyna wirtualna ma czas działania 1h3m, obciążenie 0,00, procesor 2,8 GHz (wirtualny) i 994 MB (21%) pamięci RAM dostępnej w systemie.
źródło
Rozwiązanie jednokreskowe i wydajność:
Oto przykład oczekiwanego wyniku:
źródło
Użyłbym Cacti . Spowoduje to wyświetlenie wykresu zużycia pamięci itp. W danym okresie czasu, a będziesz mógł sprawdzić wykorzystanie za pomocą przeglądarki internetowej.
źródło
Monitorowanie użycia pamięci
Jestem bardziej zgodny z jednym z poprzednich postów, w którym wspominałem o kaktusach jako świetnym sposobie monitorowania zużycia pamięci. Ponieważ jednak wydaje się, że kaktusy nie są już popularne w głównym nurcie, istnieje alternatywna aplikacja graficzna o nazwie Grafit.
Grafit jest stosunkowo łatwy do zainstalowania na serwerze Ubuntu. Aby go zainstalować, możesz sprawdzić ten link , aby zapoznać się z łatwymi procedurami instalacji.
Po zainstalowaniu grafitu możesz teraz wysyłać do niego metryki pamięci w dowolnym odstępie czasu; co 5 sekund, co minutę, co godzinę ... itd.
Aby wykresować wskaźniki pamięci, jak już sugerowano w poprzednich postach, możesz napisać własny skrypt za pomocą narzędzi systemowych w celu zebrania niezbędnych informacji o pamięci. Możesz też użyć wstępnie napisanej wtyczki snmp, która wykona całą pracę za Ciebie.
Jeśli chcesz napisać własny skrypt pamięci, mądrze jest upewnić się, że bierzesz pod uwagę buforowaną i buforowaną pamięć podczas obliczania używanej pamięci, w przeciwnym razie będziesz zbierać fałszywe dane.
Jeśli zamiast tego chcesz użyć wtyczki snmp, która już wykonuje wszystkie niezbędne obliczenia, oto link do tego, który działa całkiem dobrze: checkMemoryviaSNMP .
Zalety SNMP:
Mam snmp zainstalowany na wszystkich monitorowanych zdalnych węzłach. To pozwala mi monitorować wszystkie moje systemy z jednego centralnego serwera (serwerów) , bez konieczności kopiowania lub umieszczania wtyczki na zdalnych węzłach.
Wady SNMP:
Musisz upewnić się, że agent snmp jest zainstalowany na każdym ze zdalnych węzłów, na których chcesz monitorować pamięć. Ta instalacja będzie jednak jednorazowa. Jeśli używasz w swoim środowisku narzędzi do automatyzacji, takich jak szef kuchni, lalek lub podobnych narzędzi, nie stanowi to żadnego problemu.
Konfiguracja agenta SNMP na zdalnych węzłach:
Po zainstalowaniu agenta snmp, po prostu vi plik /etc/snmpd/snmpd.conf i dodaj do niego ten wiersz:
Następnie uruchom ponownie agenta snmpd, używając:
Następnie na serwerze centralnym, z którego zamiast tego monitorujesz wszystkie pozostałe serwery, możesz uruchomić następujące polecenie:
źródło