Ядро Linux лежит в основе многих новых технологий и платформ, таких как Android, контроллеры SDN, контейнеры, а его сервисы в качестве сетевой ОС или сервера. Эти высокие требования требуют надлежащего управления, надежности и доступности размещенных приложений, веб-сайтов и базовой ОС Linux.
В статье описаны инструменты для мониторинга производительности Linux из командной строки. Узнайте, как эти инструменты интерфейса командной строки могут помочь устранить узкие места в системе, сети, ЦП и диске.
1. Top
Команда top выводит список активных процессов в реальном времени на основе потребления времени ЦП, которое обновляется каждые пять секунд. Он отображает общую информацию в верхней части вывода команды с данными, относящимися к текущим запущенным процессам, времени безотказной работы/загрузки системы, оперативной памяти и файлу подкачки. Следуя общей информации, команда отображает списки процессов с PID, фактической памятью и процентом использования ЦП/памяти.
Обычная практика — это перечисление процессов, потребляющих чрезмерные ресурсы ЦП и памяти. Если кажется, что процесс потребляет слишком много памяти или использует максимальную загрузку ЦП, как системный администратор, вы можете убить процесс на основе назначенного PID или установить для него низкий приоритет.
Кроме того, команда top позволяет отображать и изменять запущенные процессы, сортируя их вывод на основе различных других показателей, таких как использование памяти нажатием, PID процесса, время работы и т. Д.
2. Tcpdump
TCPdump — это наиболее часто используемая утилита для устранения неполадок сети администраторами сети. Это сниффер/анализатор пакетов командной строки с открытым исходным кодом, который перехватывает TCP/IP-пакеты, передаваемые и получаемые по сети через указанный интерфейс.
Инструмент является встроенным в дистрибутивы Linux с универсальными возможностями, включая различные фильтры и флаги. Используйте следующую команду, чтобы проверить, доступен ли он:
which tcpdump
Если нет, используйте для установки менеджер пакетов вашего дистрибутива. Для Ubuntu Linux:
sudo apt-get update
sudo apt-get install tcpdump
Вы можете перечислить доступные интерфейсы, чтобы начать процесс сетевого захвата:
sudo tcpdump -D
Утилита tcpdump позволяет захватывать, записывать и читать трафик с помощью различных комбинаций фильтров, чтобы сохранять только необходимые данные, например, трафик на конкретном порту и протокол в/из файла pcap. Вот некоторые из полезных команд:
sudo tcpdump -c 10 -i ens33
sudo tcpdump -i ens33 dst port 22
sudo tcpdump -i ens33 host 10.0.1.15 -w /tmp/capture_1.pcap
sudo tcpdump -w /tmp/capture_1.pcap
Чтобы максимально использовать tcpdump, вы должны иметь некоторое представление об анализе пакетов.
3. Netstat
Как следует из названия, это мощная утилита командной строки для сетевой статистики, которая предоставляет подробную информацию о конфигурации сети и для устранении неполадок. Она отображает входящие/исходящие соединения, статистику интерфейса, прослушивающие/открытые порты, таблицу маршрутизации и т. д.
Вы можете использовать эту утилиту, установив пакет net-tools:
sudo apt-get update -y && apt-get install net-tools -y
Вы можете проверить сетевую статистику, отсортированную по протоколу, для выявления и решения проблем с помощью флага -s, как показано ниже:
netstat -s | less
Кроме того, вы можете тянуть и просматривать статистику для конкретного (только TCP) протокола, следующим образом:
netstat -st | less
Еще один удобный прием для устранения неполадок — просмотр служб по PID:
netstat -tp | less
Это мощный, но простой в использовании инструмент, всегда доступен в арсенале любого сетевого администратора Linux.
4. Htop
Htop — еще одна утилита командной строки в Linux для мониторинга системных процессов и хранилища, которая, в отличие от команды top, предлагает интерактивный пользовательский интерфейс. В качестве альтернативы основной команды он делит вывод на три основных раздела с четкими визуальными элементами, представляющими разделы ЦП, памяти и подкачки.
Она поддерживает сочетания клавиш и позволяет прокручивать интерфейс по вертикали и горизонтали для просмотра команд для каждого процесса. В отличие от основного инструмента, она недоступна по умолчанию во всех дистрибутивах Linux и требует установки через диспетчер пакетов вашей системы.
Лучше всего то, что она позволяет вам убить или изменить приоритет системного процесса без необходимости покидать интерфейс htop и использовать PID процесса, поскольку он поддерживает операции с мышью.
5. Acct/Psacct
Acct или psacct — идеальная программа для многопользовательской среды, такой как Linux, поскольку она позволяет отслеживать статус активности пользователей и приложений. Инструмент мониторинга активности пользователей работает в фоновом режиме, чтобы отслеживать действия вашего приложения и потребление ресурсов. Он отображает продолжительность доступа пользователя к серверу, используемые команды и запущенные процессы.
Установите программу в вашей системе Linux через менеджер пакетов. Утилита acct требует, чтобы вы инициировали процесс учета, включив эту опцию с помощью команды accton, и сохраняет детали в файле / var/account/pacct.
В качестве инструмента командной строки вы можете использовать его с другими инструментами, такими как ps или who, для выявления различных проблем, связанных с системными ресурсами.
6. IOTOP
Iotop — это утилита на основе Python, которая использует функции учета ядра для отслеживания использования ввода/вывода системных потоков и процессов. Это полезный инструмент, который может помочь вам определить процесс, в котором интенсивно используется диск или выполняется чтение или запись ввода/вывода. Установите этот инструмент и используйте привилегии root для отслеживания использования ввода-вывода в реальном времени.
sudo iotop
Iotop может стать очень полезным для выявления процессов с высоким потреблением памяти подкачки и большой дисковой активностью.
Дополнительные сведения для эффективного мониторинга системы
В статье перечислены некоторые инструменты для эффективного мониторинга производительности системы Linux. Мы рассматриваем готовые инструменты для сторонних программ: каждый со своим уникальным сценарием использования и функциями, позволяющими следить за вашими системными ресурсами и их использованием.
Для новичка изучение этих инструментов может оказаться сложной задачей, но мониторинг систем или серверов Linux на предмет их исправности и эффективности окупается в долгосрочной перспективе.
до iotop я б ще додав iftop
ну а з netstat вже час переходити на ss та ip, які використовують сокети netlink і беруть всі дані через них із ядра, що є ефективнішим і надає повнішу картину ніж netstat який використовуває /proc