Proste narzędzie do wykresu wykorzystania pamięci?
14
Czy istnieje skrypt, który pokaże wykorzystanie pamięci jako wykres, na przykład jako wykres kołowy, przy czym każdy proces jest oddzielnym wycinkiem?
Nie szukam czegoś takiego jak Munin do wykresu zużycia pamięci w czasie, ale raczej pokazuję zużycie pamięci na proces w jednym momencie.
Aby moja prośba była jeszcze bardziej niejasna, dotyczy serwera bezgłowego (więc nie ma aplikacji X). Najprostszym sposobem byłoby napisanie pliku PNG lub ewentualnie pliku HTML (który mógłby użyć Javascript, aby umożliwić filtrowanie procesów, przełączanie między typami grafów itp.)
Rachunek pamięci procesowej jest trudny z wielu powodów. Do prostego monitorowania wystarczą prawdopodobnie skrypty gkrellmd lub nagios. Jeśli chcesz większej dokładności, musisz spojrzeć mocniej.
Ponieważ duże części pamięci fizycznej są zwykle współużytkowane przez wiele aplikacji, standardowa miara zużycia pamięci znana jako rozmiar zestawu rezydentnego (RSS) znacznie zawyża wykorzystanie pamięci. Zamiast tego PSS mierzy „sprawiedliwy udział” każdej aplikacji w każdym wspólnym obszarze, aby uzyskać realistyczny pomiar.
Przykład: uruchamiasz GNOME, powodując uruchomienie szeregu procesów, po jednym dla każdego apletu i programu. Wszystkie prowadzą do libglib. Linux ładuje libglib do jednego bloku pamięci i mapuje go na każdy proces, który chce libglib. Naiwne rozliczanie pamięci uwzględnia pełny rozmiar libglib dla każdego procesu z nim powiązanego.
smem dzieli koszt libglib między procesy z niego korzystające, aby dać dokładniejszy obraz rzeczywistości. Posiada również wiele opcji wyświetlania zużycia pamięci (ze strony internetowej):
Pokaż podstawowe informacje o procesie smem
Pokaż widok systemu smem -R 4G -K / ścieżka / do / vmlinux -w
Pokaż sumy i procenty smem -t -p
Pokaż różne kolumny smem -c „nazwa użytkownika pss”
Pokaż procesy filtrowane przez mapowanie smem -M libxml
Pokaż odwzorowania filtrowane przez proces smem -m -P [e] volution
Odczytaj dane z przechwytywania tarball smem - source capture.tar.gz
Tak, ich sugestia, że 2.6.27 jest dość aktualna, jest dość śmieszna. Jedynymi znanymi mi dystrybucjami, które są dostarczane z nowszym jądrem, są Fedora 10 i Ubuntu 9.01.
Dave Cheney
9,04; Ubuntu 8.10 jest dostarczane z wersją 2.6.27, ale wersja 2.6.30 jest dostępna w wersji RC3.
jldugger
Przepraszam, że długo tęskniłem za ziemią RHEL, gdzie 2.6.18 uważa się za niedawne.
Dave Cheney
5
Nie mogę nic wymyślić z półki
jednak kombinacja skryptu PHP wykonującego ps -AH v | awk „{print 8 $, 9 $, 10 $}” i użycie tego z pChart może dać ci stronę internetową, która zrobiłaby to, czego szukasz? (użycie w Kb, procent sumy i nazwa procesu)
Jeśli naprawdę lubisz niższe poziomy szczegółowości, nie zapomnij o kolekcjonowaniu. Oto przykład wykorzystania pamięci na proces, którą może zgłosić:
RECORD 1 cag-dl585-02 (1244758290.002) (czw. 11 czerwca 18:11:30 2009)
PODSUMOWANIE PROCESU (liczniki są / s)
# PID Użytkownik S VmSize VmLck VmRSS VmData VmStk VmExe VmLib MajF Polecenie MinF
9089 root S 66856K 0 2328K 1440K 212K 736K 6812K 0 0 sendmail:
9097 smmsp S 57600K 0 1772K 1304K 204K 736K 5904K 0 0 sendmail:
9108 root S 6428K 0 360K 180K 84K 88K 1944K 0 0 gpm
9120 root S 74808K 0 1136K 476K 520K 48K 1920K 0 0 crond
9173 xfs S 20904K 0 1828K 1124K 88K 104K 3084K 0 0 xfs
Jeśli interesują Cię określone procesy, możesz określić odpowiednie filtry (w tym przełącznik do wyświetlania wątków).
A jeśli ogólnie interesujesz się pamięcią, może ona również wyświetlać szczegóły płyty, a nawet ma wyjście w formacie vmstat. Dlaczego miałbyś chcieć wyświetlać dane w formacie vmstat, skoro już to robi istniejące narzędzie? To proste - dzięki zbiorczemu możesz logować statystyki do pliku i odtwarzać go później w wielu formatach.
Nie jest to dokładnie to, czego szukasz, ale być może możesz dostosować to do swoich potrzeb, korzystając z tego odniesienia (poszukaj „Wykorzystanie pamięci na proces”).
Nie wdałem się w więcej szczegółów, ale collectl ma opcję generowania danych wyjściowych oddzielonych separatorem, więc w przypadku gnuplot po prostu generujesz swoje dane ze spacjami i wszystko jest gotowe. Ładnie ładuje się nawet w programie Excel. Jeśli chcesz przecinków, możesz zmienić ogranicznik, a jeśli naprawdę chcesz zrobić trasę rrd (uważaj, ponieważ wykresy nie muszą pasować do danych!), Możesz zmienić ogranicznik na dwukropki, a nawet zmienić znaczniki czasu na UTC. -znak
kSar, oparty na danych sar, ale oparty na Javie, więc jest mniej więcej niezależny od platformy i pozwoli ci ssh na zdalnym hoście w celu pobrania danych.
Nie mogę nic wymyślić z półki
jednak kombinacja skryptu PHP wykonującego ps -AH v | awk „{print 8 $, 9 $, 10 $}” i użycie tego z pChart może dać ci stronę internetową, która zrobiłaby to, czego szukasz? (użycie w Kb, procent sumy i nazwa procesu)
źródło
Spójrz na sarface - to zależy od danych sar, i możesz monitorować zużycie pamięci (i wszystkie inne dane sar / sysstat) na żywo.
źródło
a co z kolekcjonowaniem ?
źródło
Zrób to sam. Stwórz prosty skrypt powłoki aktualizujący bazę danych RRD. Następnie narysuj wykres za pomocą rrdtool.
źródło
Jeśli naprawdę lubisz niższe poziomy szczegółowości, nie zapomnij o kolekcjonowaniu. Oto przykład wykorzystania pamięci na proces, którą może zgłosić:
Jeśli interesują Cię określone procesy, możesz określić odpowiednie filtry (w tym przełącznik do wyświetlania wątków).
A jeśli ogólnie interesujesz się pamięcią, może ona również wyświetlać szczegóły płyty, a nawet ma wyjście w formacie vmstat. Dlaczego miałbyś chcieć wyświetlać dane w formacie vmstat, skoro już to robi istniejące narzędzie? To proste - dzięki zbiorczemu możesz logować statystyki do pliku i odtwarzać go później w wielu formatach.
spróbuj, spodoba ci się
źródło
Jeśli chcesz tworzyć migawki pamięci w różnych odstępach czasu ... ustaw zadanie cron na żądany odstęp i uruchom skrypt.
mam nadzieję, że to pomaga ....
źródło
Nie jest to dokładnie to, czego szukasz, ale być może możesz dostosować to do swoich potrzeb, korzystając z tego odniesienia (poszukaj „Wykorzystanie pamięci na proces”).
źródło
Hmm, gnuplot FAQ mówi, że nie obsługuje wykresy kołowe , ale sugerują, Bernhard Reitera PieChart .
źródło
Możesz użyć #top lub #sysstat
źródło
Nie wdałem się w więcej szczegółów, ale collectl ma opcję generowania danych wyjściowych oddzielonych separatorem, więc w przypadku gnuplot po prostu generujesz swoje dane ze spacjami i wszystko jest gotowe. Ładnie ładuje się nawet w programie Excel. Jeśli chcesz przecinków, możesz zmienić ogranicznik, a jeśli naprawdę chcesz zrobić trasę rrd (uważaj, ponieważ wykresy nie muszą pasować do danych!), Możesz zmienić ogranicznik na dwukropki, a nawet zmienić znaczniki czasu na UTC. -znak
źródło
kSar, oparty na danych sar, ale oparty na Javie, więc jest mniej więcej niezależny od platformy i pozwoli ci ssh na zdalnym hoście w celu pobrania danych.
http://ksar.atomique.net/
źródło
Czy phpsysinfo nie pozwala ci w jakiś sposób zobaczyć informacji o procesie?
źródło