Większość z nas posiada komputer, czy też laptop w domu. W firmach niezależnie od wielkości znajduje się przynajmniej jedno przynajmniej takie urządzenie. Obecnie każdy z nas korzysta z nich, bo okazały się bardzo pożyteczne. Nie ma co zaprzeczać, ułatwiają życie zarówno czy to w pracy, jak i w domu. Jednak jak o wszystko w życiu należy zadbać. Sprzęt komputerowy, czy też urządzenia informatyczne wymagają również czyszczenia. Oczywiście nie musi być to tak częste, jak porządki w domach, niemniej jednak brak wykonania takich czynności może spowodować spadek wydajności urządzenia. Co za tym idzie nasza wydajność, jak i wydajność firmy również może spaść. Jak powinno wyglądać monitorowanie wydajności systemu i wykorzystania zasobów?
Jednak spadek wydajności urządzenia nie wynika tylko z powodu jego zanieczyszczenia. W trakcie przyrostu informacyjnego, czy też zwiększenia magazynowania wymaganych zasobów może się zdarzyć, że sprzęt, z którego korzystamy, zwiększy wykorzystanie zasobów systemowych takich jak procesor czy też pamięć masowa. Gdy dojdzie do pewnej granicy, może to spowodować spadek wydajności. Tak samo, jak w przypadku zabrudzenia.
Monitorowanie wydajności systemu jest procesem, dzięki któremu oceniamy jego wydajność, identyfikujemy potencjalne problemy i optymalizujemy jego wykorzystanie. Tym wielu administratorów zajmuje się na co dzień. Jest to proces bardzo istotny, ponieważ w razie potrzeby podejmowane są istotne kroki naprawcze. Dzięki temu niwelujemy do minimum trwałą awarię sprzętu.
Istnieje bardzo wiele narzędzi, dzięki którym jesteśmy w stanie przeprowadzić monitorowanie wydajności systemu. Wspomniane oprogramowanie możemy podzielić na trzy grupy. Pierwsza z nich są to narzędzia wiersza poleceń dostępne prawie, w każdej dystrybucji Linux. Drugie są to programy graficzne. Natomiast do ostatniej grupy zaliczyć możemy systemy monitorujące. Dzięki wymienionych narzędziom jesteśmy w stanie gromadzić dane wykazujące wydajność takich podzespołów urządzenia jak procesor, wykorzystanie pamięci, użycie dysku, czy też różnego rodzaju obciążenia. Dzięki analizie otrzymanych danych jesteśmy w stanie zidentyfikować problem lub wcześniej jemu zapobiec.
Ostatni webinar w tym roku!
Zapraszamy na bezpłatny webinar poświęcony roli sztucznej inteligencji w zarządzaniu infrastrukturą IT, zarówno w dużych serwerowniach, jak i w środowiskach homelab.
W trakcie wydarzenia dowiesz się, jak AI może wspierać codzienną pracę administratora, pomagając w automatyzacji procesów, monitorowaniu zasobów, analizie danych oraz zwiększaniu efektywności operacyjnej.
Zapisy na: https://asdevops.pl/warsztaty/
Wskaźniki wydajności i metryki monitorowania
Istnieje wiele różnych metryk, jak i wskaźników, które powinniśmy monitorować. Listę z krótkim opisem przedstawiam poniżej.
Wykorzystanie procesora
Jeżeli uzyskujemy informacje o dużym zużyciu procesora, oznacza to, że system jest mocno obciążony lub mamy zainstalowany jakiś proces zużywający bardzo dużą ilość jego zasobów. Wykorzystanie procesora jest mierzone jako procent czasu, przez jaki jest zajęty wykonywaniem przydzielonych instrukcji.
Zużycie pamięci
Jeżeli otrzymujemy informację o dużym zużyciu pamięci, oznacza to, że w związku z zainstalowanym oprogramowaniem, systemowi brakuje zasobów lub tak jak w przypadku procesora jakiś proces zużywa bardzo duże jego ilości.
Zużycie dysku i operacje we/wy
Mógłbym te trzy punkty zapisać teoretycznie w jednym, ponieważ przyczyną wystąpienia dużego zużycia dysku jest taka sama jak u poprzedników. Oznacza, że system jest bardzo obciążony lub istnieje proces lub procesy w dużym stopniu go obciążające.
Wykorzystanie sieci
Do zbyt dużego wykorzystania sieci może dojść, gdy występuje duża komunikacja z systemem, system komunikuje się z wieloma innymi urządzeniami lub istnieje proces, który zużywa bardzo dużo zasobów sieciowych.
Średnie obciążenie systemu
Tak jak w przypadku pierwszych wymienionych, przyczyną wystąpienia tego zjawiska wynika z obciążenia systemu lub procesu, który zużywa ogromną ilość zasobów.
Choć opis każdego z elementów jest niemalże identyczny, to jednak prezentowana lista ma ogromne znaczenie. Monitorując jakiekolwiek urządzenie, możesz skupić się na bardzo dużej ilości elementów systemowych. I teraz wyobraź sobie, że otrzymujesz 100 informacji na minutę z różnych miejsc. Jesteś w stanie to opanować? Odpowiedź jest oczywista. Dlatego istotne jest, aby monitorować tylko te kluczowe miejsca w systemie, które wymieniłem.
Opis narzędzi monitorowania
Jak wspomniałem we wstępie, narzędzia służące do monitoringu możemy podzielić na trzy grupy. Wybór zależy od preferencji w firmie oraz od dostępnych zasobów finansowych. Poniżej przedstawiam te, które według mnie są najbardziej popularne.
Narzędzia wiersza poleceń
System Linux posiada bardzo wiele narzędzi wiersza poleceń, które możesz wykorzystać do monitoringu systemowego. Do takich najbardziej popularnych możemy zaliczyć top, vmstat, netstat.
Narzędzia graficzne
Nie jesteśmy tylko ograniczeni do rozwiązań wiersza poleceń. Linux posiada oprogramowanie z graficznym interfejsem. Dzięki takim dane dotyczące wydajności będą przedstawione przyjemniej dla ludzkiego oka. Mogą zawierać dodatkowe funkcje jak wykresy czy też alerty. Do najbardziej popularnych zaliczamy htop, glances, gnome-system-monitor.
Systemy monitorowania
Są to bardzo zaawansowane systemy związane z monitoringiem. Najczęściej posiadają panel, który dostosujesz do własnych potrzeb. Widzisz na nim wszystkie niezbędne informacje. Większość takich rozwiązań posiada różnego rodzaju sposoby informowania o wystąpieniu awarii. Jak na przykład informacja sms czy też mailowa. Umożliwia to administratorowi szybką interwencję w razie wystąpienia problemów. Do najbardziej popularnych systemów możemy zaliczyć Zabbix, Nagios, Prometheus. Jeżeli jesteś zainteresowany tym rozwiązaniem i chciałbyś poznać system do monitorowania Zabbix, to zapraszam do naszego kursu.
Jak zaprezentowałem powyżej, lista możliwości jest obszerna. Nie zostały wymienione wszystkie dostępne narzędzia. Te, które umieściłem, zaliczam do najbardziej popularnych.
Zbieranie oraz analiza danych
Po wykonaniu konfiguracji narzędzi do monitorowania dane są zbierane, dzięki czemu jesteśmy w stanie przeprowadzić ich analizę i ocenić wydajność systemu oraz identyfikacji problemów. Niemniej jednak jest kilka istotnych kroków, o jakie warto zadbać po ich wdrożeniu. Te, które zaliczam do najbardziej istotnych, wypisuję poniżej.
Skonfiguruj harmonogramy i interwały zbierania danych
Jest to pierwszy, a zarazem najistotniejszy punkt całego monitoringu. Poprzez stworzenie harmonogramu oraz interwałów zbierania danych określamy, co ile dane wydajnościowe mają być zbierane i przechowywane. Dla przykładu możesz gromadzić je co minutę, co godzinę lub w innych odstępach czasu.
Wizualizuj dane dotyczące wydajności za pomocą wykresów
Jeżeli narzędzie, z którego korzystasz, ma możliwość wizualizacji graficznej, to wykorzystaj ten element. Dzięki temu łatwiej będzie Ci zrozumieć oraz przeanalizować to, co wydarzyło się w systemach, które monitorujesz. Wizualizacja danych jest ułatwieniem i nawet jeżeli wymaga dodatkowej konfiguracji, to najczęściej robisz to tylko raz.
Analizuj trendy wydajności i identyfikuj wzorce
Można to rozumieć jako analizowanie zachowania urządzenia w czasie stałym. Czyli jeżeli na przykład wykorzystanie procesora jest stale wysokie, oznacza to najczęściej, że system jest za bardzo obciążony i należy coś z tym zrobić.
Używaj narzędzi i technik wydajnościowych do diagnozowania problemów
Jeżeli zidentyfikowany zostanie problem z wydajnością, administratorzy systemu powinni użyć narzędzi i technik wydajnościowych takich jak na przykład narzędzia wiersza poleceń. Analiza zasobów jak dzienniki systemowe czy też skorzystanie z narzędzi debugowania pomoże lepiej zidentyfikować źródło problemu.
Przy monitoringu bardzo istotne jest samo gromadzenie danych. Nie powinniśmy ich usuwać, a trzymać do dalszej analizy. Jednak istotna jest hierarchia ich magazynowania i usuwania. Jak wiadomo, magazynowanie zabiera miejsce, dlatego należy starsze usuwać w celu oszczędności miejsca. Niemniej jednak im więcej zbierzemy, tym lepsze informacje otrzymamy. Szczególnie sprawa dotyczy systemów monitoringu, które analizują dane już zgromadzone, dzięki czemu powstają lepsze wizualizacje.
Opis wybranych narzędzi wiersza poleceń do monitorowania
Tak jak wspomniałem w jednym z pierwszych akapitów, oprogramowanie do monitorowania możemy podzielić na trzy kategorie. W tym artykule i tym paragrafie zajmę się narzędziami wiersza poleceń.
Top
Prezentowanie polecenie jest narzędziem, dzięki któremu widzimy wszelkie metryki oraz wskaźniki wydajności w systemie Linux. Korzystając z niego, uzyskamy listę aktualnie uruchomionych procesów wraz z informacjami, o każdym z nich. Na liście otrzymamy informacje przy każdy procesie o tym, w jaki sposób zużywa on procesor i pamięć. Najprościej polecenie wywołujemy w poniższy sposób:
top
Przyznam, że jeżeli nie jesteś przyzwyczajony do interfejsu konsolowego, na samym początku możesz mieć problemy z jego odczytem. Dlatego warto chwilę posiedzieć przy tym wyniku i zerknąć na to, co się zmienia. Po pewnym czasie czytając rubryki, w których występują zmiany, powinieneś zauważyć, gdzie znajduje się kolumna odpowiedzialna za wykorzystanie procesora, a gdzie pamięci. Natomiast wiedz, że wszelkie zmiany, jakie wystąpią, pokazane są na samej górze listy.
Oto przykład wyniku działania polecenia top:
top - 09:23:37 up 1 min, 1 user, load average: 0,92, 0,44, 0,17
Tasks: 228 total, 1 running, 227 sleeping, 0 stopped, 0 zombie
%Cpu(s): 6,7 us, 0,7 sy, 0,0 ni, 91,9 id, 0,0 wa, 0,7 hi, 0,0 si, 0,0 st
MiB Mem : 1812,5 total, 281,2 free, 935,2 used, 596,1 buff/cache
MiB Swap: 4096,0 total, 4050,0 free, 46,0 used. 706,9 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2421 kgodzisz 20 0 3417128 264912 89648 S 15,3 14,3 0:07.33 gnome-shell
3203 kgodzisz 20 0 748256 65760 42244 S 1,7 3,5 0:00.64 terminator
7 root 20 0 0 0 0 I 0,3 0,0 0:00.05 kworker/0:1-events_power_efficient
8 root 20 0 0 0 0 I 0,3 0,0 0:00.10 kworker/u4:0-events_unbound
13 root 20 0 0 0 0 I 0,3 0,0 0:00.05 rcu_sched
1105 root 20 0 769664 26228 11884 S 0,3 1,4 0:00.76 tuned 3300 kgodzisz 20 0 264236 4584 3656 R 0,3 0,2 0:00.07 top
Polecenie top posiada kilka opcji, które pomogą w wyświetleniu istotnych dla nas informacji.
top -d 30 – określasz interwał odświeżania górnego;
top -n 5 – określasz po ilu iteracjach, top ma zakończyć działanie;
Narzędzie top posiada wiele innych opcji, z którymi możesz zapoznać się, korzystając z podręcznika man.
vmstat
Jest to narzędzie, dzięki któremu wyświetli się lista metryk oraz wskaźników wydajności w systemie Linux. Dane, które otrzymamy to wykorzystanie procesora, użycie pamięci, użycie dysku i operacji we/wy oraz użycie sieci. Najprostszym sposobem wywołania polecenia jest:
vmstat 5
Gdzie liczba po poleceniu określa co ile sekund, mają być dane wyświetlane. Polecenie działa w trybie ciągłym dlatego, aby zakończyć jego działanie, należy skorzystać z kombinacji klawiszy CTRL+C.
Oto przykład danych wyjściowych polecenia vmstat:
vmstat 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 45056 172932 276 654532 4 24 534 73 207 267 2 1 97 0 0
0 0 45056 172572 276 654540 0 0 0 10 349 352 2 0 97 0 0
0 0 45056 172604 276 654540 0 0 0 0 314 359 1 0 98 0 0
0 0 45056 172604 276 654540 0 0 0 0 324 313 2 0 98 0 0
Do najbardziej przydatnych opcji programu możemy zaliczyć:
vmstat -n 5 -d 10 – spowoduje to wyświetlenie 10 aktualizacji bieżących statystyk systemowych, z 5-sekundową przerwą między każdą aktualizacją. Po wyświetleniu wszystkich vmstat zakończy działanie.
vmstat -n 5 -t – wyświetli aktualne statystyki systemowe z datą i godziną dla każdej aktualizacji.
Polecenie posiada kilka innych opcji, jeżeli chcesz dowiedzieć się więcej, zajrzyj do podręcznika man.
netstat
Narzędzie systemu Linux, dzięki któremu otrzymamy informacje o połączeniach sieciowych i protokołach. Najprostszym sposobem użycia jest wpisanie jego nazwy.
netstat
Spowoduje to wyświetlenie aktywnych połączeń sieciowych.
Poniżej prezentuje przydatne sposoby użycia programu.
netstat -a - wyświetlamy listę aktywnych połączeń oraz protokołów.
netstat -l - wyświetlamy listę wszystkich gniazd nasłuchujących oraz protokołów.
netstat -p - wyświetlamy listę wszystkich aktywnych połączeń sieciowych wraz z identyfikatorem procesu (PID) i nazwą programu.
netstat -st - wyświetla statystyki protokołu TCP.
netstat -r - wyświetla tablicę routingu na komputerze, w tym miejsce docelowe, bramę i interfejs dla każdej trasy.
Podsumowanie – Monitorowanie wydajności systemu i wykorzystania zasobów
Monitorowanie wydajności systemu i wykorzystania zasobów jest ważną częścią administrowania systemem, ponieważ pomaga zapewnić jego niezawodność i wydajność. Regularnie monitorując system i podejmując proaktywne kroki w celu rozwiązania problemów, administratorzy systemu mogą upewnić się, że system działa optymalnie i spełnia wszelkie potrzeby użytkowników.
Chcesz wiedzieć więcej na temat administracji? Przeczytaj nasze artykuły, a także weź udział w kursach!