Dowiedz się, ile procesora lub pamięci zużywa pojedynczy proces lub cały system.
Jako administrator często masz do czynienia z incydentem, w którym aplikacja działa wolno lub nie odpowiada z powodu wysokiego wykorzystania procesora/pamięci/sieci. Jeśli serwer obsługuje tylko jeden proces, łatwo jest dowiedzieć się, kiedy proces zużywa wszystkie zasoby. Wyobraź sobie jednak serwer współdzielony, na którym działa wiele usług, i musisz dowiedzieć się, który z nich pochłania wszystkie zasoby.
Istnieje wiele programów monitorujących, które robią to po wyjęciu z pudełka. Ale jeśli go nie masz lub szukasz rozwiązania opartego na poleceniach, to proszę bardzo. Wszystkie są BEZPŁATNE!
Spis treści:
Top
Możesz zacząć od spojrzenia na wyniki top lub htop, aby zobaczyć przegląd procesów.
Jak widać poniżej, daje to doskonałe wyobrażenie o tym, z czego korzystają wszystkie procesy. Jeśli spojrzysz na pierwszy, to jest MySQL, który zajmuje 11,9% CPU i 2,5% CPU.
top - 11:57:33 up 0 min, 1 user, load average: 3.69, 0.96, 0.32 Tasks: 165 total, 2 running, 113 sleeping, 0 stopped, 0 zombie %Cpu(s): 21.0 us, 5.5 sy, 0.0 ni, 70.5 id, 1.7 wa, 0.0 hi, 1.3 si, 0.0 st KiB Mem : 7637308 total, 5802888 free, 849512 used, 984908 buff/cache KiB Swap: 0 total, 0 free, 0 used. 6495648 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1986 netdata 20 0 1738856 191560 22948 S 11.6 2.5 0:02.30 mysqld 3021 www-data 20 0 255288 78420 55484 S 6.6 1.0 0:01.55 php-fpm 3138 www-data 20 0 253096 79780 59228 S 6.6 1.0 0:00.92 php-fpm 3153 www-data 20 0 255116 79088 56472 S 5.0 1.0 0:00.70 php-fpm 3037 www-data 20 0 257200 81088 56216 S 4.3 1.1 0:01.50 php-fpm 3048 www-data 20 0 257088 78740 55380 S 4.3 1.0 0:01.46 php-fpm 3054 www-data 20 0 254160 72168 52108 S 3.7 0.9 0:01.32 php-fpm 3135 www-data 20 0 255084 75912 54836 S 3.7 1.0 0:00.91 php-fpm 3051 www-data 20 0 254096 73804 51964 S 3.0 1.0 0:01.38 php-fpm 2962 www-data 20 0 45280 7284 3488 R 2.0 0.1 0:00.22 openresty 1062 netdata 20 0 338748 76144 6720 S 1.0 1.0 0:01.31 netdata 1702 netdata 20 0 21852 4232 2352 S 1.0 0.1 0:00.34 apps.plugin 1729 netdata 20 0 18636 3280 2764 S 0.7 0.0 0:00.05 bash 1980 netdata 20 0 62008 12896 5796 S 0.7 0.2 0:00.14 redis-server 11 root 20 0 0 0 0 I 0.3 0.0 0:00.14 rcu_sched 1007 root 20 0 1347424 74524 38872 S 0.3 1.0 0:00.92 dockerd 1857 root 20 0 10600 5564 4276 S 0.3 0.1 0:00.03 containerd-shim 2045 root 20 0 9948 6028 5016 S 0.3 0.1 0:00.14 forego 2934 root 20 0 13616 8760 5928 S 0.3 0.1 0:00.07 docker-gen 2966 systemd+ 20 0 25784 7924 2340 S 0.3 0.1 0:00.06 nginx
Top jest instalowany w prawie wszystkich dystrybucjach Linuksa.
Gdy zidentyfikujesz podejrzanego, możesz chcieć skupić się na tym procesie zamiast na wszystkim, co widziałeś powyżej. Nadal możesz użyć polecenia top, ale z pewnym argumentem.
Powiedzmy, że znasz identyfikator procesu (PID); możesz użyć poniższego polecenia.
góra -p $PID
Poniżej przykład góry -p 3102
top - 11:59:56 up 3 min, 1 user, load average: 0.72, 0.70, 0.31 Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie %Cpu(s): 7.1 us, 2.9 sy, 0.0 ni, 89.1 id, 0.3 wa, 0.0 hi, 0.7 si, 0.0 st KiB Mem : 7637308 total, 5802024 free, 783672 used, 1051612 buff/cache KiB Swap: 0 total, 0 free, 0 used. 6555636 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3102 www-data 20 0 329500 82376 60640 S 0.0 1.1 0:03.35 php-fpm
Możesz również użyć grep z topem. Poniżej przykład sprawdzania wykorzystania Dockera.
[email protected]:~# top | grep docker 1007 root 20 0 1347424 74524 38872 S 0.3 1.0 0:01.38 dockerd 2934 root 20 0 14676 9652 5928 S 0.3 0.1 0:00.54 docker-gen 1007 root 20 0 1347424 74524 38872 S 0.3 1.0 0:01.39 dockerd 1007 root 20 0 1347424 74524 38872 S 1.0 1.0 0:01.42 dockerd 2934 root 20 0 14740 9652 5928 S 0.3 0.1 0:00.55 docker-gen 2934 root 20 0 14740 9652 5928 S 0.3 0.1 0:00.56 docker-gen
htop
Podobny do góry, ale z większą ilością informacji. Jak możesz, otrzymał kolumnę poleceń, która jest przydatna do identyfikacji ścieżki procesu. A do tego jest kolorowa.
htop może nie być instalowany domyślnie, ale zawsze możesz to zrobić jak poniżej.
Zainstaluj htop na Ubuntu
apt-get install htop
Zainstaluj htop na CentOS/RHEL 8.x
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm dnf update dnf install htop
spojrzenia
Jak sama nazwa wskazuje, otrzymujesz widok wykorzystania systemu na jednym ekranie. Uruchomione procesy są sortowane według wykorzystania procesora.
Możesz zainstalować spojrzenia na CentOS 8 za pomocą DNF, jak poniżej.
dnf install glances
dla CentOS7 możesz użyć YUM
yum install glances
na szczycie
Podobny do powyższego, ale z genialną funkcją nagrywania danych wyjściowych w pliku, dzięki czemu można je później wyświetlić. Wyobraź sobie, że istnieje wzorzec problemu w określonym przedziale czasowym. Możesz zaplanować zapisanie wyjścia w pliku za pomocą crontab lub innego, a później możesz odtwarzać.
Aby zapisać dane wyjściowe w pliku:
atop -w filename
a do odtwarzania:
atop -r filename
Obsługuje wiele argumentów, takich jak interwał, próbki itp., i gorąco polecam zajrzeć na stronę podręcznika.
Jeśli interesuje Cię rozwiązywanie problemów w czasie rzeczywistym, po prostu wykonaj na górze i powinieneś zobaczyć jak poniżej.
Możesz zainstalować na górze, jak poniżej.
dnf install atop
ps
Sprawdźmy teraz polecenie ps.
Możesz użyć polecenia ps z PID, aby wydrukować ich wykorzystanie procesora i pamięci.
ps -p $PID -o %cpu,%mem
Wynik powinien wyglądać tak.
[email protected]:~# ps -p 1048 -o %cpu,%mem %CPU %MEM 0.2 3.0 [email protected]:~#
nmon
Interaktywne narzędzie do monitorowania z wiersza poleceń procesora, pamięci, dysków, sieci, systemu plików NFS i wykorzystania pamięci wirtualnej. Aby wyświetlić górny proces (według wykorzystania), możesz wykonać nmon i nacisnąć przycisk t.
Możesz zainstalować nmon jak poniżej.
dnf install nmon
Monit
Monit to rozwiązanie open source oparte na sieci Web i wiersza poleceń do monitorowania zasobów serwera, demonów, plików, katalogów, systemów plików itp.
Monit dostał też fajny widget.
Jego lekkie oprogramowanie monitorujące. Ale tutaj jest więcej do odkrycia.
Monitorix
Lekkie narzędzie typu open source do monitorowania serwera Linux. Monitorix ma wbudowany HTTP, dzięki czemu możesz sprawdzić wykorzystanie i inne rzeczy w Internecie. Niektóre inne raporty użytkowania obejmują:
- Kernal/temperatura
- System plików i we/wy
- Ruch sieciowy
- Apache/Poczta/FTP/Nginx
- MySQL/Lakier/Memcached
Monitorix oferuje również konfigurację alertów, dzięki czemu możesz otrzymywać powiadomienia, gdy coś nie jest w porządku. Będzie dobrym wyborem, gdy zarządzasz serwerami w chmurze i szukasz rozwiązania do proaktywnego monitorowania.
Dane netto
Dane netto to monitorowanie wydajności w czasie rzeczywistym zasobów systemowych, aplikacji, serwerów WWW, baz danych, DNS, poczty, czujników sprzętowych i wielu innych. Jest to oprogramowanie typu open source, a rozpoczęcie pracy jest łatwe. Wszystkie dane są gromadzone, przechowywane i przesyłane strumieniowo w celu interaktywnej wizualizacji. Dane są zbierane co sekundę, więc nigdy niczego nie przegapisz.
Uwielbiany przez wielu liderów branży.
Więc na co czekasz, spróbuj przejąć kontrolę nad swoimi serwerami Linux.
btop
btop to poręczny monitor zasobów, w pełni interaktywny z pięknym interfejsem użytkownika, pomagającym zarządzać serwerami Linux.
Możesz łatwo wizualizować procesy w widoku drzewa, filtrować z listy procesów i zarządzać wieprze zasobów. btop jest również wyposażony w wykres automatycznego skalowania pokazujący wykorzystanie sieci.
Poza tym możesz również sprawdzić szybkość dysku i pełną aktywność we/wy.
Jest więcej tego, czego możesz doświadczyć w systemach Linux, FreeBSD i macOS.
Wniosek
Mam nadzieję, że powyższe narzędzia pomogą Ci zwizualizować wykorzystanie serwera w czasie rzeczywistym, abyś mógł podjąć niezbędne działania. Jeśli dopiero zaczynasz jako administrator systemu i chcesz odbyć praktyczne szkolenie, sprawdź to Kurs Udemy.