Како надгледати ЦПУ и меморију на Линуку?

Сазнајте колико појединачни процес или системски троше ЦПУ или меморију.

Као системски администратор, често морате да се носите са инцидентима у којима је апликација спора или не реагује због високог искоришћења ЦПУ/меморије/мреже. Ако сервер хостује само један процес, онда је лако сазнати када процес троши све ресурсе. Међутим, замислите дељени сервер на коме ради више услуга, а ви морате да пронађете који од њих троши све ресурсе.

Постоји много софтвера за надгледање који то ради из кутије. Али ако га немате или тражите решење засновано на команди, изволите. Сви су БЕСПЛАТНИ!

топ

Можда ћете желети да почнете тако што ћете погледати топ или хтоп резултат да бисте видели преглед процеса.

Као што можете видети у наставку, даје одличну идеју о томе шта сви процеси користе. Ако погледате први, МиСКЛ заузима 11,9% ЦПУ-а и 2,5% ЦПУ-а.

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

Врх је инсталиран на скоро свим Линук дистрибуцијама.

  Направите моћне графиконе, визуелизујте податке и направите контролну таблу у својим апликацијама помоћу ФусионЦхартс-а

Када идентификујете осумњиченог, можда ћете желети да се фокусирате на тај процес уместо на све као што сте видели горе. И даље можете користити топ команду, али са неким аргументом.

Рецимо да знате ИД процеса (ПИД); можете користити доњу команду.

топ -п $ПИД

Испод примера топ -п 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

Такође можете користити греп са врхом. У наставку је пример провере коришћења Доцкер-а.

[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

хтоп

Слично као на врху, али са више информација. Као што можете, добио је командну колону, која је згодна за идентификацију путање процеса. И такође је шарено.

хтоп можда није подразумевано инсталиран, али увек можете то да урадите на следећи начин.

Инсталирајте хтоп на Убунту

apt-get install htop

Инсталирајте хтоп на ЦентОС/РХЕЛ 8.к

dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
dnf update
dnf install htop

погледи

Као што име каже, добијате приказ коришћења система на једном екрану. Покренути процеси су сортирани према њиховој искоришћености ЦПУ-а.

  10 најбољих стилова руковођења који ће вам помоћи да успете

Можете инсталирати погледе на ЦентОС 8 користећи ДНФ као што је доле.

dnf install glances

за ЦентОС7, можете користити ИУМ

yum install glances

на врху

Слично горе наведеном, али са бриљантном функцијом за снимање излаза у датотеку како бисте их касније могли погледати. Замислите да постоји образац да имате проблем у одређеном временском прозору. Можете заказати да упишете излаз у датотеку преко цронтаб-а или другог, а касније можете да је репродукујете.

Да бисте снимили излаз у датотеку:

atop -w filename

и за репродукцију:

atop -r filename

Подржава више аргумената као што су интервал, узорци, итд. и топло бих препоручио да погледате ман страницу.

Ако сте само заинтересовани за решавање проблема у реалном времену, онда само извршите на врху и требало би да видите као испод.

Можете инсталирати на врху као испод.

dnf install atop

пс

Хајде да сада проверимо пс команду.

Можете користити команду пс са ПИД-ом да одштампате њихову искоришћеност ЦПУ-а и меморије.

ps -p $PID -o %cpu,%mem

Излаз би требао изгледати овако.

[email protected]:~# ps -p 1048 -o %cpu,%mem
%CPU %MEM
 0.2  3.0
[email protected]:~#

нмон

Интерактивна алатка за праћење командне линије за ЦПУ, меморију, дискове, мрежу, НФС и коришћење виртуелне меморије. Да бисте видели главни процес (по коришћењу), можете извршити нмон и притиснути дугме т.

Можете инсталирати нмон као испод.

dnf install nmon

Монит

Монит је решење отвореног кода засновано на вебу и командној линији за надгледање серверских ресурса, демона, датотека, директоријума, система датотека итд.

Монит је такође добио кул виџет.

Његов лагани софтвер за праћење. Али, овде има још тога за истраживање.

  Који алат за сарадњу треба да користи ваше предузеће 2023.

Мониторик

Лагани услужни програм отвореног кода за надгледање Линук сервера. Мониторик има уграђени ХТТП тако да можете да проверите коришћење и друге ствари на вебу. Неки од других извештаја о употреби укључују:

  • Кернал/температура
  • Систем датотека и И/О
  • Мрежни саобраћај
  • Апацхе/Маил/ФТП/Нгинк
  • МиСКЛ/Варнисх/Мемцацхед

Мониторик такође нуди конфигурацију упозорења тако да можете бити обавештени када ствари нису у реду. Биће то добар избор када управљате серверима заснованим на облаку и тражите проактивно решење за праћење.

Нетдата

Нетдата је праћење перформанси у реалном времену за системске ресурсе, апликације, веб сервере, базе података, ДНС, пошту, хардверске сензоре и још много тога. Он је отвореног кода и почетак је лак. Сви подаци се прикупљају, чувају и емитују да бисте их интерактивно визуелизовали. Подаци се прикупљају сваке секунде, тако да никада ништа не пропустите.

Воле га многи лидери индустрије.

Дакле, оно што чекате, покушајте да преузмете контролу над својим Линук серверима.

бтоп

бтоп је згодан монитор ресурса потпуно интерактиван са прелепим корисничким интерфејсом који вам помаже да управљате Линук серверима.

Можете лако да визуелизујете процесе у приказу стабла, филтрирате са листе процеса и управљате ресурсима. бтоп такође долази са аутоматским скалирањем графикона који приказује коришћење мреже.

Осим тога, такође можете проверити брзину диска и комплетну И/О активност.

Постоји још много тога што можете искусити на Линук-у, ФрееБСД-у и мацОС-у.

Закључак

Надам се да ће вам горњи алати помоћи да визуализујете искоришћеност сервера у реалном времену како бисте могли да предузмете неопходне радње. Ако сте тек почели као систем администратор и желите да добијете практичну обуку, погледајте ово Удеми цоурсе.