Жүктеме мен процестерді бақылау: top, htop, atop
Сервердегі әрбір белсенді процесс жүктеме тудырады, ал сервер ресурстары таусылған кезде бұл веб-сайттың баяу жұмыс істеуі немесе скрипттердің кешігіп орындалуы сияқты түрлі мәселелерге әкелуі мүмкін.
Сервердегі жүктемені талдау үшін бірнеше арнайы утилита бар. Біз олардың үшеуін қарастырамыз:
- top
- htop
- atop
Жалпы алғанда, олар бір-біріне айтарлықтай ұқсас. htop утилитасы интерактивті интерфейс ұсынады және пайдалануға ыңғайлырақ болуы мүмкін. Ал Top Linux дистрибутивтерінде алдын ала орнатылған және бөлек орнатуды қажет етпейді. Atop логтар жүргізу мүмкіндігіне ие.
Егер веб-сайтыңыз баяу жұмыс істесе, Google-дың PageSpeed Insights сервисін пайдалану да ұсынылады. Бұл құрал беттердің жүктелу жылдамдығын талдап, сайтыңызды оңтайландыру бойынша ұсыныстар береді. Сондай-ақ MySQL уақытша файлдарының каталогын tmpfs-ке көшіру арқылы сайттың өнімділігін арттыруға болады.
top
top утилитасы UNIX жүйелерінің көпшілігінде әдепкі бойынша орнатылған, оны серверге SSH арқылы қосылып, top командасын орындау арқылы іске қосуға болады.
top шығысы мынадай болып көрінеді:
Шығыстың жоғарғы бөлігінде жүйе туралы ақпарат, ал төменде процестер тізімі берілген. Шығыс әр 2 секунд сайын жаңартылады, ал ресурстарды ең қарқынды тұтынатын процестер тізімнің жоғарғы жағында орналасады.
Жүйе туралы ақпарат
Шығыстың сол жақ жоғарғы бұрышында ағымдағы жүйелік уақыт, одан кейін келесі деректер көрсетіледі:
Up — жүйе соңғы рет қайта жүктелгеннен бері өткен уақыт.
User — ағымдағы пайдаланушылар саны.
Load average — сервердегі орташа жүктеме, соңғы бір, бес және он бес минуттағы мәндерді көрсетеді.
Tasks — әртүрлі күйдегі іске қосылған процестердің жалпы саны: running (орындалып жатқан), sleeping (күтудегі), stopped (тоқтатылған) және zombie (зомби), яғни аталық процестің аяқталуын күтіп тұрған еншілес процестер.
Cpu(s) — процестерді орындауға жұмсалған процессор уақытының пайызы, ол келесі санаттарға бөлінеді:
us — пайдаланушы процестері (жоғары мән сайт кодында оңтайландыруды қажет ететін мәселелер бар екенін көрсетуі мүмкін).
sy — жүйелік процестер.
id — пайдаланылмаған ресурстар (бұл көрсеткіш неғұрлым жоғары болса, соғұрлым жақсы).
wa — енгізу/шығару операциялары, яғни дискілік операциялар.
Mem, Swap — жедел жадтың пайдаланылуы туралы ақпарат, соның ішінде total (жалпы көлем), free (бос көлем) және used (пайдаланылған көлем).
Процестер туралы ақпарат
Әдепкі бойынша процестер процессордың пайдаланылуы бойынша ең үлкен мәннен ең кішісіне қарай сұрыпталған кесте түрінде көрсетіледі.
Төменде бағандардың сипаттамасы берілген:
PID — процесс идентификаторы;
USER — процесті іске қосқан пайдаланушы;
PR — процестің басымдығы;
NI — өзгертілген басымдық (пайдаланушы nice командасы арқылы орнатқан);
VIRT — виртуалды жад көлемі (процесс іс жүзінде азырақ пайдаланса да, ол сұраған жад көлемі);
RES — процесс пайдаланатын физикалық жедел жад көлемі (егер процесс 50 МБ жад сұрап, тек 10 МБ пайдаланса, 10 МБ көрсетіледі);
SHR — басқа процестермен ортақ жад көлемі (басқа процестер пайдалана алатын жад);
S — процестің күйі (running — орындалып жатыр; sleeping — күтуде; zombie — зомби-процесс);
%CPU — процессор уақытының пайдаланылу пайызы;
%MEM — жедел жадтың пайдаланылу пайызы;
TIME — процестің жалпы жұмыс уақыты;
COMMAND — процестің атауы (процесс іске қосылған команда).
Басқару
top утилитасымен жұмыс істеу үшін келесі пернелер пайдаланылады:
Бос орын (Space) — шығысты жаңарту
M — жадтың пайдаланылуы бойынша сұрыптау
P — процессорға түсетін жүктеме бойынша сұрыптау (әдепкі бойынша)
T — процестің жұмыс уақыты бойынша сұрыптау
A — әртүрлі ресурстарды ең көп тұтыну бойынша сұрыптау
u — пайдаланушы аты бойынша сұрыптау (пайдаланушы атын енгізу қажет)
k — процесті аяқтау (оның идентификаторын, PID-ін көрсету қажет)
n — шығыстағы процестер санын өзгерту (қажетті санды көрсету керек)
c — іске қосылған процеске апаратын толық жолды көрсету (COMMAND бағаны)
h — анықтаманы шығару
q — бағдарламадан шығу
htop
top утилитасынан айырмашылығы, htop серверге алдын ала орнатуды қажет етеді:
Ubuntu / Debian:
apt-get install htop
CentOS:
yum install htop
Орнатқаннан кейін іске қосыңыз:
htop
Команданың шығысы төменде көрсетілген:
top сияқты, жоғарғы бөлікте жүйе туралы ақпарат, ал төменде процестер тізімі көрсетіледі. htop-тағы бағандардың мәндері top-пен бірдей (олар жоғарыда сипатталған).
Сол жақ жоғарғы бөлікте процессордың әр ядросына түсетін жүктеме, пайдаланылатын жад көлемі, процестер саны, соңғы 1, 5 және 15 минуттағы орташа жүктеме мәндері (load average), сондай-ақ жүйенің жұмыс уақыты (uptime) туралы деректерді көре аласыз.
Әдепкі бойынша процестер процессордың пайдаланылуы бойынша үлкенінен кішісіне қарай сұрыпталады.
Пайдаланылатын жад көлемі (немесе басқа параметр) бойынша сұрыптау үшін тиісті бағанның атауын, мысалы, MEM басыңыз. Кері сұрыптау үшін (кішісінен үлкеніне қарай) сол бағанды тағы бір рет басыңыз. Бұдан басқа, top-тағы сияқты M (жад бойынша сұрыптау), P (процессор бойынша), T (уақыт бойынша) пернелерін пайдалануға болады.
Қосымша функциялар:
Бос орын (Space) — процесті белгілеу (бұл процестерді аяқтау сияқты топтық операцияларды орындау үшін белгілеуге мүмкіндік береді).
u — тек белгілі бір пайдаланушының процестерін көрсету.
Басқару үшін F1 – F10 пернелері қолжетімді:
F1 — анықтаманы шығару.
F2 — көріністі баптау (бағандарды қосу немесе жою, жоғарғы бөлікте қосымша ақпаратты көрсету және басқа параметрлер).
F3 — процестерді іздеу.
F4 — процестерді сүзу (тек атауында белгілі бір мәтіні бар процестерді көрсету).
F5 — процестер ағашын көрсету (аталық және еншілес процестер арасындағы байланыстарды көрсетеді).
F6 — сұрыптау түрін өзгерту.
F7 / F8 — процестің басымдығын арттыру немесе төмендету.
F9 — процесті аяқтау (top-тан айырмашылығы, PID көрсетудің қажеті жоқ — процесті таңдап, F9 басыңыз; аяқтауды растау үшін Enter, бас тарту үшін Esc басыңыз).
F10 — бағдарламадан шығу.
Әр перненің функциялары бағдарламаның қай мәзірінде тұрғаныңызға байланысты өзгеруі мүмкін. Қолжетімді әрекеттер терезенің төменгі жағында көрсетіледі, бұл утилитамен жұмыс істеуді жеңілдетеді.
atop
atop утилитасының басты ерекшелігі — логтар жүргізу мүмкіндігі. Бұл ағымдағы жүктемені бақылап қана қоймай, өткен күндердегі процестердің жұмысын қадағалауға мүмкіндік береді, бұл нақты уақытта анықтау қиын уақытша қателерді табуға көмектеседі.
Утилитаны пайдалану үшін оны серверге орнату қажет:
Ubuntu / Debian:
apt-get install atop -y
CentOS:
yum install atop -y
Сондай-ақ atop-ты автожүктеуге қосу ұсынылады:
Ubuntu / Debian / CentOS 7:
systemctl enable atop
CentOS 6:
chkconfig atop on
Ubuntu 14.04:
rm /etc/init/atop.override
Утилитаны іске қосыңыз:
atop
Шығыс шамамен мынадай болады:
Экранның жоғарғы бөлігінде жүйе туралы және негізгі құрамдас бөліктерге — процессорға, ядроларға, жадқа, желіге түсетін жүктеме туралы ақпарат көрсетіледі. Төменде процестер тізімі берілген.
Шығысты басқару үшін келесі пернелерді пайдалануға болады:
m — жадтың пайдаланылуы бойынша сұрыптау
d — дискіге түсетін жүктеме бойынша сұрыптау
u — пайдаланушылар бойынша жүктеме
v — процестер туралы толық ақпарат
i — деректерді жаңарту аралығын өзгерту (әдепкі бойынша 10 секунд)
g — әдепкі шығысқа оралу
n — процестерді желіге түсетін жүктеме бойынша сұрыптау (ядро патчы орнатылған жағдайда қолжетімді)
Shift пернесімен тіркесімдер ағымдағы процестер тізімін тиісті параметрлер бойынша сұрыптауға мүмкіндік береді:
- Shift + m — жадтың пайдаланылуы бойынша сұрыптау
- Shift + c — CPU тұтынуы бойынша сұрыптау (әдепкі бойынша)
- Shift + d — дискінің пайдаланылуы бойынша сұрыптау
- Shift + n — желінің пайдаланылуы бойынша сұрыптау
atop логтары
Әдепкі бойынша atop жүйенің күйі туралы ақпаратты әр 10 минут сайын тіркеп, оны /var/log/atop каталогында орналасқан лог-файлда сақтайды.
Ағымдағы күннің логын қарау үшін мына команданы орындаңыз:
atop -r
Пайдалы пернелер тіркесімдері:
- t — уақыт бойынша алға жылжу
- Shift + t — уақыт бойынша артқа жылжу
Белгілі бір күннің лог-файлы atop_ЖЖЖЖААКК (жыл, ай, күн) деп аталады. Белгілі бір күннің логын қарау үшін atop -r командасын пайдаланып, файлға апаратын жолды көрсетіңіз, мысалы:
atop -r /var/log/atop/atop_20200227
Логтарды жазу баптауларын өзгерту үшін /etc/default/atop немесе /etc/sysconfig/atop (CentOS-та) жолында орналасқан atop конфигурациялық файлын өңдеңіз.
# Сервер жүктемесінің суретін жасау аралығы, секундпен:
INTERVAL=600
# Логтар каталогына апаратын жол:
LOGPATH="/var/log/atop"
# Лог файлының атауы
OUTFILE="$LOGPATH/daily.log"
Мысалы, жүктеме суреттерін жазу аралығын бір минутқа өзгерту үшін 60 аралығын көрсетіңіз.
Өзгерістер енгізгеннен кейін atop-ты қайта іске қосыңыз:
systemctl restart atop.service