Дізнайтеся, скільки окремий процес або система в цілому споживають ЦП або пам’ять.
Як системному адміністратору вам часто доводиться мати справу з інцидентом, коли програма працює повільно або не відповідає через високе використання ЦП/пам’яті/мережі. Якщо на сервері розміщено лише один процес, то легко дізнатися, коли процес споживає всі ресурси. Однак уявіть спільний сервер, на якому працює кілька служб, і вам потрібно знайти, яка з них споживає всі ресурси.
Є багато програмного забезпечення для моніторингу, яке робить це з коробки. Але якщо у вас його немає або ви шукаєте рішення на основі команд, то ось вам. Усі вони БЕЗКОШТОВНІ!
зверху
Ви можете почати з перегляду результатів top або htop, щоб побачити огляд процесів.
Як ви бачите нижче, це дає чудове уявлення про те, що використовують усі процеси. Якщо ви подивитеся на перший, MySQL займає 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
Топ встановлюється майже на всіх дистрибутивах Linux.
Коли ви ідентифікуєте підозрюваного, ви можете зосередитися на цьому процесі, а не на всьому, як ви бачили вище. Ви все ще можете використовувати команду top, але з певним аргументом.
Припустимо, ви знаєте ідентифікатор процесу (PID); ви можете використовувати наведену нижче команду.
top -p $PID
Нижче приклад top -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
Ви також можете використовувати grep з top. Нижче наведено приклад перевірки використання Docker.
[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
Подібний до верхнього, але з додатковою інформацією. Як ви можете, він отримав стовпець команд, який зручний для визначення шляху процесу. А ще він барвистий.
htop може не бути встановлено за замовчуванням, але ви завжди можете зробити це, як показано нижче.
Встановіть htop на Ubuntu
apt-get install htop
Встановіть htop на CentOS/RHEL 8.x
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm dnf update dnf install htop
погляди
Як свідчить назва, ви отримуєте перегляд використання системи на одному екрані. Запущені процеси сортуються за використанням ЦП.
Ви можете встановити glances на CentOS 8 за допомогою DNF, як показано нижче.
dnf install glances
для CentOS7 можна використовувати YUM
yum install glances
зверху
Подібний до перерахованого вище, але з чудовою функцією для запису результатів у файл, щоб ви могли переглянути їх пізніше. Уявіть, що існує шаблон виникнення проблеми в певний проміжок часу. Ви можете запланувати запис вихідних даних у файл за допомогою crontab або іншого, а потім відтворити.
Щоб записати результат у файл:
atop -w filename
і для відтворення:
atop -r filename
Він підтримує кілька аргументів, таких як інтервал, зразки тощо, і я настійно рекомендую переглянути сторінку довідки.
Якщо ви просто зацікавлені в усуненні несправностей у реальному часі, тоді просто виконайте зверху, і ви побачите, як показано нижче.
Ви можете встановити зверху, як показано нижче.
dnf install atop
ps
Давайте зараз перевіримо команду ps.
Ви можете використати команду ps із PID, щоб надрукувати їх використання процесора та пам’яті.
ps -p $PID -o %cpu,%mem
Вихід має виглядати так.
[email protected]:~# ps -p 1048 -o %cpu,%mem %CPU %MEM 0.2 3.0 [email protected]:~#
nmon
Інтерактивний інструмент командного рядка для моніторингу використання ЦП, пам’яті, дисків, мережі, NFS і віртуальної пам’яті. Щоб переглянути верхній процес (за використанням), ви можете виконати nmon і натиснути кнопку t.
Ви можете встановити nmon, як показано нижче.
dnf install nmon
Моніт
Моніт це веб-рішення з відкритим вихідним кодом для керування серверними ресурсами, демонами, файлами, каталогами, файловими системами тощо.
Моніт також отримав крутий віджет.
Його легке програмне забезпечення для моніторингу. Але тут є ще що дослідити.
Моніторікс
Легка утиліта з відкритим кодом для моніторингу сервера Linux. Моніторікс має вбудований HTTP, щоб ви могли перевіряти використання та інші речі в Інтернеті. Деякі інші звіти про використання включають:
- Ядро/температура
- Файлова система та введення/виведення
- Мережевий трафік
- Apache/Пошта/FTP/Nginx
- MySQL/Varnish/Memcached
Monitorix також пропонує налаштування сповіщень, щоб ви могли отримувати сповіщення, коли щось не так. Це буде хорошим вибором, якщо ви керуєте хмарними серверами та шукаєте рішення для проактивного моніторингу.
Netdata
Netdata це моніторинг продуктивності системних ресурсів, програм, веб-серверів, баз даних, DNS, пошти, апаратних датчиків і багато іншого в режимі реального часу. Це відкритий код, і почати легко. Усі дані збираються, зберігаються та передаються для інтерактивного візуалізації. Дані збираються щосекунди, тому ви ніколи нічого не пропустите.
Його люблять багато лідерів галузі.
Отже, чого ви чекаєте, спробуйте взяти під контроль свої сервери Linux.
btop
btop це зручний повністю інтерактивний монітор ресурсів із гарним інтерфейсом користувача, який допомагає керувати серверами Linux.
Ви можете легко візуалізувати процеси у вигляді дерева, фільтрувати зі списку процесів і керувати ресурсами. btop також оснащено графіком із автоматичним масштабуванням, який показує використання мережі.
Крім того, ви також можете перевірити швидкість диска та завершити введення-виведення.
У Linux, FreeBSD і macOS є ще багато чого.
Висновок
Я сподіваюся, що наведені вище інструменти допоможуть вам візуалізувати використання сервера в реальному часі, щоб ви могли вжити необхідних заходів. Якщо ви тільки починаєте як системний адміністратор і хочете отримати практичне навчання, то перегляньте це Курс Udemy.