как посмотреть загруженность процессора linux
🐧 Как найти процессы с наиболее высокой загрузкой на процессор в Linux
Иногда возникают ситуации, в которых должны определить список процессов, которые потребляют больше ресурсов ЦП в системе.
Я считаю, что есть только два способа проверить это.
Это можно сделать с помощью команды top и команды ps.
Я хотел бы рекомендовал использовать скорее top, нежели ps.
Но оба метода будут давать одинаковые результаты, поэтому вы можете выбрать тот, который вам нравится больше.
Обе эти опции широко используются администраторами Linux.
1) Как найти процесс с высокой загрузкой на процессор в Linux с помощью команды top
Команда top в Linux – это лучшая и наиболее известная команда, которую все используют для мониторинга производительности системы Linux.
Команда top обеспечивает динамическое представление в реальном времени запущенных процессов в системе Linux.
Она отображает сводную информацию о системе, список процессов, в настоящее время управляемых ядром Linux.
Она отображает различную системную информацию, такую как использование процессора, использование памяти, память подкачки, количество запущенных процессов, время работы системы, загрузка системы, размер буфера, размер кэша, PID процесса и т. д.
По умолчанию она сортирует верхние выходные данные с использованием ЦП и обновляет данные каждые 5 секунд.
Если вы хотите получить четкое представление о выводе команды top для дальнейшего анализа, это лучший способ запустить команду top в пакетном режиме.
Кроме того, вы должны понимать вывод команды top, чтобы исправить проблему производительности в системе.
2) Как найти процесс с высокой загрузкой процессора в Linux с помощью команды ps
ps обозначает processes status, она отображает информацию об активных / запущенных процессах в системе.
Она предоставляет снимок текущих процессов вместе с подробной информацией, такой как имя пользователя, идентификатор пользователя, использование процессора, использование памяти, дата начала процесса и имя команды времени и т. д.
57 инструментов командной строки для мониторинга производительности Linux
Каждый системный и сетевой администратор, решающий каждодневные задачи по контролю и отладке системной производительности Linux, нуждается в соответствующих программных инструментах. Это не простая задача, мониторить и поддерживать систему в рабочем состоянии. В помощь системным администраторам Linux/Unix, а также веб-мастерам, обслуживающим сервер, был собран этот список. Эти команды доступны на большинстве Linux, и они могут быть полезны при контроле и поиске причин проблем, связанных с производительностью. В этом списке предостаточно инструментов, чтобы можно было подобрать нужные программы подходящие для вашего сценария мониторинга.
1. Top – Мониторинг процессов Linux
Linux команда Top – это программа наблюдения за производительностью, которая часто используется системными администраторами для монитора производительности Linux, она доступна во многих операционных системах Linux и Unix-подобных. Команда top используется для отображения всех запущенных и активных процессов в реальном времени в упорядоченном списке, который регулярно обновляется. В нём показано использование ЦПУ, использование памяти, использование файла подкачки (Swap), размер кэша, размер буфера, PID процессов, пользователь, команды и многое другое. Также выделены процессы, интенсивно использующие центральный процессор и память. Команда top очень полезна для системных администраторов для контроля и принятия мер, в отношении процессов, излишне нагружающих систему. Давайте взглянем на команду top в действии.
2. VmStat – Статистика виртуальной памяти
Команда Linux VmStat используется для отображения статистики виртуальной памяти, потоков ядра, дисков, системных процессов, блоков ввода/вывода, прерываний, активности ЦПУ и много другого. По умолчанию команда vmstat недоступна в системах Linux и вам нужно установить пакет, называющийся sysstat, он включает в себя программу vmstat. Обычный формат использования команды:
3. Lsof – Список открытых файлов
Команда lsof используется во многих Linux/Unix-подобных системах для отображения списка открытых файлов и процессов. Открытые файлы включают дисковые файлы, сетевые сокеты, трубы, устройства и процессы. Одна из обычных ситуаций использования этой команды – это невозможность отмонтировать диск, из-за ошибки, что используются или открыты файлы. С этой командой вы с лёгкостью можете выяснить, какие файлы используются. Самым популярном способом запуска этой команды является:
4. Tcpdump – Анализатор сетевых пакетов
Tcpdump – это один из самых широко используемых анализаторов сетевых пакетов с интерфейсом командной строки, а также программ для сниффинга пакетов, используемая для захвата или фильтрации TCP/IP пакетов, которые получены или переправлены по сети на определённом интерфейсе. Программа умеет сохранять захваченные пакеты в файл для последующего анализа. tcpdump доступен практически на всех главных дистрибутивах Linux.
5. Netstat – Статистика сети
Netstat – это инструмент командной строки для мониторинга статистики входящих исходящих сетевых пакетов, а также статистики интерфейсов. Это весьма полезный инструмент для каждого системного администратора для контроля производительности сети и решения проблем, связанных с сетью.
6. Htop – Контроль процессов Linux
Htop – это весьма продвинутый, интерактивный инструмент мониторинга процессов Linux в реальном времени. Он сильно похож на команду Linux top, но у него имеются некоторые богатые возможности, такие как удобный интерфейс для управления процессами, сочетания клавиш, вертикальный и горизонтальный вид процессов и много другое. Htop – это сторонний инструмент и не включён в Linux системы по умолчанию, но обычно доступен в стандартных репозиториях, т.е. перед использованием эту программу нужно установить.
7. Iotop – Linux монитор дискового ввода/вывода
Iotop – это программа наподобие команд top и htop, Но её функция заключается в учёте и отображении в реальном времени процессов, которые читают/записывают (I/O) на диск. Этот инструмент весьма полезен для отображения процессов, которые обращаются к файловой системе и для поиска того процесса, который интенсивно использует диск для чтения или записи.
8. Iostat – Статистика ввода/вывода
IoStat – это простой инструмент, который собирает и показывает статистику по системному вводу и выводу на устройства хранения. Этот инструмент часто используется для отслеживания проблем производительности, в том числе на устройствах, локальных дисках, удалённых дисках таких как NFS. Программа по умолчанию недоступна. Она включена в пакет sysstat, т.е. для её использования нужно установить этот пакет.
9. IPTraf – Мониторинг реального времени IP LAN
IPTraf – это сетевая (IP LAN) консольная утилита мониторинга реального времени для Linux. Она собирает различную информацию, такую как прошедший по сети IP трафик, включая информацию о TCP флагах, ICMP подробности, обрывы трафика TCP/UDP, пакеты TCP подключений и счётчик байтов. Она также собирает общую и подробную статистическую информацию о TCP, UDP, IP, ICMP, не-IP, IP ошибках контрольной суммы, активности интерфейсов и т.д.
10. Psacct или Acct – Контроль пользовательской активности
Инструменты psacct или acct очень полезны для контроля активности каждого пользователя в системе. Оба демона запускаются в фоне и внимательно следят за активностью каждого пользователя системы, а также за потребляемыми ими ресурсами.
Эти инструменты очень полезны для системных администраторов для слежения за активностью каждого пользователя, что они делают, какие команды выполняют, как много ими использовано ресурсов, как долго они активны в системе и т.д.
11. Monit – Управление и мониторинг процессов и служб Linux
Monit – это утилита наблюдения с веб-интерфейсом, она автоматически мониторит и управляет системными процессами, программами, файлами, директориями, разрешениями, контрольными суммами и файловыми системами.
Она мониторит такие службы как Apache, MySQL, Mail, FTP, ProFTP, Nginx, SSH и т.д. Системный статус можно посмотреть из командной строки или используя её собственный веб-интерфейс.
Веб-интерфейс доступен по адресу http://localhost:2812/ (для локального компьютера, для удалённых систем localhost замените на IP вашего сервера).
Учётные данные по умолчанию для входа в Monit это пользователь ‘admin’ с паролем ‘monit’.
Monit – приятная программа, которая мониторит ваш Linux и Unix сервер, она может наблюдать за всем, что вы имеете на вашем сервере, от главного веб-сервера (Apache, Nginx…) до файловых разрешений, хешей файлов и веб-служб. Плюс много всего другого.
12. NetHogs – Монитор использования сети каждым процессом
NetHogs – это славная маленькая программка (наподобие команды top в Linux), которая на вкладках показывает сетевую активность для каждого процесса в вашей системе. Она ведёт учёт сетевой активности о скорости соединений и количестве используемого трафика каждой программой или каждым приложением. Для переключения между отображением скорости и количеством трафика, после запуска программы используйте клавишу m.
13. iftop – Контроль использования сети
iftop – это ещё одна утилита командной строки для мониторинга системы, она отображает часто обновляемый список, состоящий из хостов источника и назначения и используемую ширину канала для передачи данных между ними. iftop – для оценки использования сети, это как top для оценки использования ЦПУ.
14. Monitorix – Мониторинг системы и сети
Monitorix – это бесплатная, не требовательная к ресурсам утилита, которая предназначена для контроля за системой и сетевыми ресурсами в серверах Linux/Unix настолько, насколько это возможно. Она имеет встроенный HTTP веб-сервер, которые регулярно собирает системную и сетевую информацию и отображает её в графиках. Программа следит за нагрузкой на систему и использованием ресурсов, распределением памяти, здоровьем диска, системными сервисами, сетевыми портами, почтовой статистикой (Sendmail, Postfix, Dovecot и пр.), MySQL статистикой и многим другим. Программа предназначена для контроля общей производительности системы и помогает в обнаружении сбоев, узких мест, аномальной активности и т.д.
15. Arpwatch – Контроль Ethernet активности
Arpwatch – это программа, которая предназначена для контроля преобразования адресов (изменения MAC и IP адресов) сетевого трафика Ethernet в сети Linux. Она непрерывно наблюдает за Ethernet трафиком и создаёт журнал изменений в сети пар IP и MAC адресов вместе с метками времени. У неё также есть функция по отправки администратору email предупреждений, когда добавляются или изменяются пары. Она крайне полезна для выявления в сети ARP спуфинга.
Подробности о программе arpwatch: https://kali.tools/?p=241
16. Suricata – Контроль сетевой безопасности
Suricata – это движок следующего поколения для выявления и предотвращения вторжений для Linux, FreeBSD and Windows.
17. VnStat PHP – Мониторинг использования сети
VnStat PHP – это приложение на основе веб-интерфейса для самых популярных инструментов сети под названием vnstat. VnStat PHP мониторит использование сетевого трафика в симпатичном графическом режиме. Он отображает общее количество использование входящего и исходящего трафика по часам, дням, месяцам и отчёт с полной сводной.
18. Nagios – Мониторинг сети/сервера
Nagios – мощная система мониторинга, которая даёт возможность сетевому/системному администраторы выявить и разрешить проблемы с сервером до того, как они доставят серьёзные проблемы. С системой Nagios, администраторы могут следить за удалёнными Linux, Windows, свичерами, роутерами и принтерами в одном окне. Она показывает критические предупреждения и даёт знать, если что-то пошло не так в вашей сети/сервере, что является предпосылкой для начала процессов исправления до того, как проблема по-настоящему проявила себя.
19. Nmon: Производительность системы Linux
Nmon – инструмент контроля производительности, который используется для наблюдения за всеми ресурсами Linux, к которым относится центральный процессор, память, использование диска, сеть, топ процессов, NFS, ядро и многое другое. Этот инструмент поставляется с двумя режимами: Online Mode и Capture Mode.
Online Mode используется для мониторинга в реальном времени, а Capture Mode сохраняет вывод в формате CSV для последующей обработки.
20. Collectl – Набор инструментов для контроля производительности
Collectl – это ещё одна мощная и богатая функциями утилита командной строки, она может использоваться для сбора информации о ресурсах системы Linux, таких как использование центрального процесора, памяти, сети, инод, процессов, nfs, tcp и многого другого.
21. Glances – Мониторинг системы в реальном времени
Glances – это инструмент мониторинга, построенный таким образом, чтобы представлять так много информации, как это только возможно в окне терминала любого размера, он автоматически подстраивается под размер окна терминала, в котором запущен, другими словами, это инструмент мониторинга с отзывчивым дизайном.
22. Netdata
Netdata – это чрезвычайно оптимизированная утилита Linux, которая в реальном времени (посекундно) обеспечивает мониторинг производительности систем Linux, приложений, SNMP устройств и т.д. и показывает полностью интерактивные графики, которые через веб-браузер показывают абсолютно все собранные значения для их анализа.
Программа была создана чтобы быть установленной на систему Linux без прерывания на ней текущих запущенных приложений. Вы можете использовать этот инструмент для контроля и обзора в реальном времени того, что происходит или только что произошло в ваших системах Linux и приложениях.
Что мониторит Netdata:
23. Sarg – Мониторинг пропускной способности Squid
Sarg (Squid Analysis Report Generator, т.е. генератор отчётов анализа для Squid) – это бесплатный, с открытым исходным кодом инструмент, который действует как инструмент контроля для вашего прокси сервера Squid, она создаёт отчёты о пользователях вашего прокси сервера Squid, IP адресах, сайтах, которые они посетили и некоторая другая информация.
24. Модуль Apache mod_status – Мониторинг статуса Apache
Модуль Apache mod_status – это модуль Apache, который позволяет вам контролировать worker статусы веб-сервера Apache. Он генерирует отчёты в простом для чтения HTML формате. Он показывает вам статус всех worker, как много каждый из них использует центральный процессор, какие запросы в данный момент обрабатываются, количество работающих и неработающих worker.
25. Sysstat – Система контроля производительности всё-в-одном
Ещё один инструмент мониторинга для вашей системы Linux. На самом деле Sysstat – это не команда, это название проекта. В действительности Sysstat – это пакет, который включает много инструментов слежения за производительностью, к ним относятся iostat, sadf, pidstat и много других инструментов, которые показывают вам множество статистической информации о вашей ОС Linux.
26. Icinga – Мониторинг сервера следующего поколения
Icinga – это программа контроля сети, она показывает вам множество опций и информацию о ваших сетевых подключениях, устройствах и процессах, это очень хороший выбор для тех, кто ищет хороший инструмент для мониторинга всего, что связано с сетью.
27. Observium – Управление и контроль сети
Observium – это также инструмент контроля сети, он создан облегчить вам управления сетью сервера, имеется две версии: Community Edition, которая бесплатная и с открытым исходным кодом, а также платная коммерческая версия.
28. Web VMStat – Система мониторинга статистики
Web VMStat – это очень простое веб-приложение, которое предоставляет информацию о системе в реальном времени в HTML формате. Эта информация включает данные от центрального процессора, оперативной памяти, файла подкачки, ввода/вывода.
29. PHP Server Monitoring
В отличие от других инструментов в этом списке, PHP Server Monitoring – это скрипт веб-сервера, написанный на PHP. Он помогает вам с лёгкостью управлять вашими веб-сайтами и хостами, он поддерживает базу данных MySQL, выпущен под лицензией GPL3.
30. Linux Dash – Мониторинг производительности сервера Linux
Linux Dash представляет собой веб-панель, которая показывает вам самую важную информацию о ваших системах Linux, к этой информации относится RAM, CPU, файловая система, запущенные процессы, пользователи, использование канала сети в реальном времени, имеется приятный графический интерфейс, программа бесплатна, у неё открытый исходный код.
31. Cacti – Мониторинг сети и системы
Cacti – это веб-интерфейс для RRDtool, он часто используется для контроля использования сети, используя SNMP (Simple Network Management Protocol), также может использоваться для контроля использования центрального процессора.
32. Munin – Сетевой мониторинг
Munin – это также графический веб-интерфейс для RRDtool, написан на Perl, лицензия GPL. Munin – это хороший инструмент для мониторинга систем, сетей, приложений и служб. Он работает на Unix-подобных операционных системах и имеет замечательную систему плагинов; доступно более 500 различных плагинов для мониторинга на вашей машине всего, что вы хотите. Доступна система уведомлений, для отправки сообщений администратору когда возникла ошибка или когда проблема разрешилась.
33. Wireshark – Анализатор сетевых протоколов
Программа отличается от других из этого списка, Wireshark используется для анализа сетевых пакетов и для мониторинга сетевых подключений. Написана на C с библиотекой GTK+, выпущена под лицензией GPL.
34. smem – Создание отчётов по использованию памяти
smem сообщает об использовании физической памяти, принимая во внимание общие страницы памяти. Неподелённая память показывается как USS. Общая память делится поровну между процессами, разделяющими её. Неподелённая память (USS), плюс доля процесса в совместной памяти показывается как PSS. USS и PSS включают только физическое использование памяти. Они не включают память, выгруженную на диск в файл подкачки.
Память может показываться по процессам, по пользователям, mapping или по всей системе. Доступен как текстовый режим вывода, так и графический.
35. nload – Мониторит сетевой трафик и использование сети
nload – это консольное приложение, которое в реальном времени мониторит сетевой трафик и использование полосы пропускания. Программа визуализирует входящий и исходящий трафик используя два графика и предоставляя дополнительную информацию, такую как переданные данные и минимальное/максимальное использование сети.
36. gkrellmd – Мониторинги сервера Krell
gkrellmd прослушивает подключения от клиентов gkrellm. Когда клиент gkrellm подключается к серверу gkrellmd, все встроенные мониторинги собирают данные с сервера.
37. jnettop – Просмотр хостов/портов, забирающих большинство сетевого трафика
jnettop – это консольная утилита наподобие top, но для визуализации трафика. jnettop захватывает проходящий через хост трафик и показывает потоки с наибольшим использованием полосы пропускания. Результатом является листинг сетевых соединений, отсортированных по хостам и портам, с количеством прошедших байт и потреблённой полосой пропускания.
38. dnstop – Показывает различные таблицы DNS трафика в вашей сети
dnstop – это маленький инструмент, который прослушивает устройство или парсит файл, собирает и печатает статистику по DNS трафику локальной сети.
39. ntopng – Инструмент с веб-интерфейсом по анализу трафика и текущих соединений.
ntopng показывает текущее использование сети. Программа показывает список хостов, которые в данное время используют сеть и создаёт отчёты относительно (IP и не-IP) трафика сгенерированного и полученного трафика каждым хостом.
ntopng может выступать как отдельная законченная программа, которая и собирает и отображает данные, или как инструмент для графического интерфейса. Для просмотра данных, захваченных программой ntopng требуется веб-браузер.
40. mtr – Инструмент диагностики сети
Объединяет функциональность traceroute и ping в одном инструмент командной строки.
41. atop – Продвинутый монитор системы и процессов
Программа atop – это интерактивный монитор для просмотра загруженности системы Linux. Она показывает занятость самый критичных (с точки зрения производительности) аппаратных ресурсов на системном уровне, например, центральный процессор, диск и сеть.
Также показывает данные по процессам, сколько они потребляют ресурсов.
42. saidar – Программа для отображения живой системной статистики
saidar – это программа на основе curses для просмотра системной статистики, доступной через libstatgrab. Статистика включает ЦПУ, процессы, нагрузку, память, подкачку, сетевой ввод/вывод, дисковый ввод/вывод и информацию о файловой системе.
43. ps – Создание слепка текущих процессов
ps показывает информацию о процессах, имеются разные варианты вывода, в том числе в виде дерева, с разным набором информации, возможен выбор процессов по определённым критериям.
44. ngxtop – Метрики реального времени для сервера nginx
ngxtop парсит логи доступа вашего nginx и выводит полезные, похожие на вывод программы top метрики вашего сервера nginx. Таким образом вы можете сказать, что происходит с вашим сервером в реальном времени.
45. sysdig – Исчерпывающий инструмент устранения неполадок в системе и процессах
sysdig – это инструмент для решения системных проблем, анализа и исследования. Он может использоваться для захвата, фильтрации и декодирования системных вызовов и других событий ОС.
sysdig может использоваться для инспектирования живой системы или для генерации файлов трассировки, которые могут быть проанализированы на последующих стадиях.
sysdig включает мощный язык фильтрации, имеет настраиваемый вывод и может быть расширена за счёт скриптов Lua, которые называются chisel.
46. csysdig – ncurses интерфейс для sysdig
csysdig экспортирует функциональность sysdig через интуитивный и мощный пользовательский интерфейс, основанный на ncurses.
csysdig создана похожей на инструменты вроде top и htop, но программа предлагает более богатую функциональность, включая:
47. BWTop – Контроль сетевой активности
BWTop – это инструмент с интерфейсом командной строки для контроля используемой полосы пропускания на сетевом интерфейсе.
48. Zabbix – Система мониторинга клиент/сервер с большим количеством функций
Zabbix используется для:
49. apachetop – Инструмент мониторинга Apache в реальном времени
ApacheTop просматривает файлы журнала, генерируемые Apache и генерирует понятный человеку вывод в реальном времени.
50. ksar – Графический инструмент sar
ksar может строить графики для вывода sar. Работает на Linux, Ьac и Solaris. Графики статистики sar могут выводиться в PDF файл.
51. iperf3 – Интсрумент измерения пропускной способности сети
iperf3 может тестировать пропускную способность сети как для TCP, так и для UDP. Для выполнения теста с iperf3 пользователь должен настроить программу на стороне сервера и на стороне клиента.
52. dstat – Универсальный инструмент статистики ресурсов
Dstat – это универсальная замена для vmstat, iostat и ifstat. Dstat преодолевает некоторые ограничения и добавляет некоторые дополнительные функции.
Dstat позволяет вам мгновенно просматривать все системные ресурсы, вы можете, например, сравнить использование диска в комбинации с прерываниями вашего IDE контроллера или сравнить пропускную способность сети в комбинации с пропускной способностью диска (в том же интервале).
53. rainbarf – Полоса диаграммы со статистиками CPU/RAM/батереи для tmux
Графики использования ресурсов добавляются в строку статуса tmux.
54. free – Отображение количества свободной и используемой памяти в системе
Программа free отображает общее количество свободной и используемой в системе физической памяти и файла подкачки, а также буферы и кэши используемые ядром. Информация собирается парсингом /proc/meminfo.
55. tree – Список содержимого директорий в виде дерева
Tree – это программа для рекурсивного показа содержимого директорий в виде дерева.
56. uptime – Говорит, как давно запущена система
Программа uptime отображает только одну строку, в которой содержится следующая информация: текущее время, как давно была запущена система, как много пользователей в данный момент совершили вход и средняя загруженность системы за последние 1, 5 и 15 минут.
Это точно такая же информация, которая отображается в строке заголовка программы w.
57. ifstat – Сообщает статистику интерфейса
Ifstat – это маленький инструмент для отображения статистики активности интерфейса, в точности как iostat/vmstat делают для других системных статистик.
Здесь были представлены самые важные инструменты для мониторинга Linux/Unix машин. Конечно, существуют многие другие инструменты, но эти самые известные. Я не сомневаюсь, что этот список можно ещё долго продолжать. Поэтому если у вас есть свои любимые инструменты, которые не попали сюда, то поделитесь ими в комментариях.