Monitorowanie wydajności systemu i wykorzystania zasobów

Monitorowanie wydajności systemu i wykorzystania zasobów

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!

 

 

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/

 

 

 

 

Warsztaty "Użycie AI w Serwerowni i Homelab"!

X