Szukam sposobu na zdiagnozowanie problemów, takich jak śmierć zamiany, w której proces pamięci balonem wypełnia zamianę i zabija całą maszynę (np. Apache).
Już używam kaktusów i mogę skonfigurować nagios (choć wolałbym nie) lub Munin, ale o ile wiem, nie mogą rejestrować użycia poszczególnych programów - tylko ogólny stan.
Wiem, że mogę rzutować skrypt >> do jakiegoś pliku co 30s, ale chciałbym sprawdzić, czy istnieje już dojrzałe rozwiązanie.
Ponownie idealnie byłoby:
- rejestruj wykorzystanie pamięci procesów co N sekund
- rejestruj użycie procesora co N sekund
- obsługa wykresów i historii
- średnie wsparcia - tak jak mysqld zużył 43% procesora w ostatnim dniu i uśrednił 400 MB pamięci
- być wolnym i otwartym źródłem
Nazwy procesów nie są i nie powinny być znane z góry - chodzi o to, aby pozwolić monitorować, a następnie rzucić okiem na najlepszych przestępców.
Mój system to Linux (OpenSUSE).
linux
performance
monitoring
memory-usage
Artem Russakovskii
źródło
źródło
Odpowiedzi:
Jeśli chcesz tylko najlepszych przestępców, rozważ bieganie
top
ze stosunkowo długim odstępem czasu (60 sekund plus) w trybie wsadowym.top
Aby schwytać najlepszych przestępców na wielu zasobach, może być potrzebny więcej niż jeden bieg. Skonfigurowałem systemy, aby działałytop
przez kilka cykli, gdy zasób był nadmiernie wykorzystywany.Rozważ uruchomienie
sar
w trybie wsadowym, aby uchwycić wykorzystanie zasobów. Zdaję sobie sprawę, że jest to oparte na serwerze, ale przydatne jest określenie czasu wystąpienia problemów.Uruchom
munin
i włącz powiadomienia. To może dać ci szansę na wejście i obserwowanie awarii serwera. Być może uda Ci się rozwiązać problem, zanim spadnie.W przypadku wycieków pamięci ciągły wzrost wykorzystania wymiany wskazuje na problem. Kiedyś widziałem, jak serwer powoli umiera przez kilka dni. Usługą problemową był program monitorujący inne procesy pod kątem wycieków pamięci. Administrator systemu nalegał, aby wzrost użycia wymiany nie stanowił problemu, aż do momentu, gdy serwer przestał odpowiadać.
Może się okazać, że
cfengine
wykrycie anomalii może zostać użyte do uruchomienia skryptu w celu przechwycenia stanu systemu, gdy coś pójdzie nie tak. Możesz potrzebować wielu informacji oprócz samych procesów wykorzystujących najwięcej zasobów. W przypadku nagłego napływu użytkowania możesz potrzebować listy połączeń sieciowych (według adresu, a nie nazwy). Przydatne jest również użycie pamięci.źródło
sysstat jest stworzony właściwie do twoich celów.
źródło
Użyłem już na szczycie:
http://freshmeat.net/projects/atop/
„Atop to pełnoekranowy monitor wydajności ASCII, który jest w stanie raportować aktywność wszystkich procesów (nawet jeśli procesy zakończyły się w tym przedziale czasu), codzienne rejestrowanie aktywności systemu i procesu w celu analizy długoterminowej, podkreślając przeciążenie zasobów systemowych za pomocą kolory itp. W regularnych odstępach czasu pokazuje aktywność na poziomie systemu związaną z procesorem, pamięcią, zamianą, dyskami i warstwami sieci, a dla każdego aktywnego procesu pokazuje wykorzystanie procesora, wzrost pamięci, priorytet, nazwę użytkownika, stan, i kod wyjścia ”.
źródło
atop -r log_filename
, naciśnij,m
aby przejść do widoku wykorzystania pamięci na proces, a następnie naciśnij,t
aby przejść w odstępach 10-minutowych do 3:40. Możesz przeczytać więcej o podstawach korzystania z atop na lwn.net/Articles/387202 i zobaczyć przykład identyfikowania wycieku pamięci na atoptool.nl/download/case_leakage.pdfCzy próbowałeś zebrać?
Jest bardzo wydajny i konfigurowalny.
Ma wiele wtyczek i może być zintegrowany z nagios.
http://collectd.org/features.shtml
źródło
top
.Centreon na szczycie Nagios, Nagios w połączeniu z NRPE. Następnie możesz pisać niestandardowe skrypty, aby raportować dane w DOWOLNYM formacie, który chcesz NRPE. Nagios następnie sonduje dane ze zdalnych serwerów za pomocą NRPE, a Centreon tworzy ładny wykres i dodaje ton elastyczności dla użytkownika. Używamy go na stronie http://beyondhosting.net. Mam już szablon kontenera VZ z konfiguracją centreon + nagios, jeśli chcesz.
Centrum wykresów buduje hostthenpost.org/tyler/2010-07-23_1719.png
źródło
nmon to świetne narzędzie, które robi to, czego szukasz. Opracowany dla systemów AIX i Linux. Tworzy mnóstwo szczegółowych danych wyjściowych i jest łatwy do umieszczenia w raportach. Jeśli google go, istnieje wiki IBM, który ma wiele dokumentacji i dodatkowe narzędzia do analizowania danych.
źródło
Gęstość serwera robi dokładnie to, co opisujesz.
Używam go na jednym z naszych serwerów produkcyjnych i jestem z tego bardzo zadowolony. Jego najważniejszą cechą jest możliwość przeglądania wykresów, klikania piku i sprawdzania zużycia procesora / pamięci przez serwer w danym momencie, w tym wszystkich uruchomionych procesów. Nazywają to migawkami .
Ciągle się poprawia. Jedną z najnowszych funkcji jest wykrywanie anomalii , które umożliwia łatwe wykrywanie anomalii. Możesz także ustawić różne progi
źródło
http://studyhat.blogspot.com/2010/08/user-activity-view-processes-display.html
spójrz ponad link mały kod, który daje ci pamięć procesora itp.
źródło
Odpowiedzi sugerowane, kiedy zadałem podobne pytanie :
Icapan powiedział :
David Spillet powiedział :
Możesz także sprawdzić Nagios lub OpenNMS .
źródło
Munin zrobi wszystko, czego potrzebujesz po wyjęciu z pudełka, nie wymagając Nagios ani żadnego innego narzędzia. Dostępne są RPM dla OpenSUSE.
źródło
Może stary dobry OProfile robi to, czego potrzebujesz? Jest to profiler na poziomie systemu oparty na jądrze, z niewielkim (kilku procentami) narzutem.
Jest też doskonały skrypt Perla, PSMon , który pozwala ustawić wszystkie rodzaje limitów procesora / pamięci. Jeśli zostaną przekroczone, psmon zarejestruje błąd i / lub zabije proces obrażający.
Ten ostatni nie generowałby żadnych raportów profilowania, ale jeśli zdecyduje się zabić ten sam proces w kółko, prawdopodobnie znalazłeś paskudnego drania, którego szukałeś. :-)
źródło