Утилиты Linux для анализа производительности

Такие утилиты как top или vmstat знакомы даже малоопытным пользователям. Без труда с их помощью можно решать многие проблемы с производительностью приложений на платформе Linux/UNIX. И чаще всего это касается уже традиционных веб-приложений на основе LAMP стэка.

Однако для специалистов более высокого уровня данных утилит явно недостаточно. Проблемы с быстродействием приложений не всегда отличаются очевидностью и простотой, а потому вполне уместно рассмотреть наиболее важные средства для анализа производительности.

htop
htop представляет собой довольно мощную альтернативу стандартной утилите top. Отличается он в первую очередь более удобным интерфейсом и возможностью быстро настроить отображение информации о системных ресурсах.

С точки зрения мониторинга процессов все также реализовано на высоком уровне. htopвыводит в режим реального времени данные по использованию процессора и памяти, а также другие системные метрики (всего их доступно более 50) для каждого активного процесса и потока. В отличии от top предусмотрена возможность вертикального и горизонтального скроллинга, а значит ничто не ускользнёт от вашего внимания.

Пример работы утилиты htop

Также с помощью htop можно, например, изменить приоритет процесса или вовсе его завершить.

dstat
dstat в свою очередь является улучшенной альтернативой таким утилитам как vmstatили sar, а заодно и таким известным инструментам как iostat и ifstat.

Суть работы dstat — сбор усредненной информации об использовании системных ресурсов с заданным интервалом вывода данных. Среди кандидатов для анализа информация об утилизации процессора, памяти, сети, диска, файлов подкачки и т.д.

Пример работы утилиты dstat

Процесс мониторинга системных ресурсов организован довольно просто и, главное, наглядно. А среди особых возможностей dstat — запись собираемых метрик в CSV файлы, что крайне важно для последующего анализа.

iotop
Безусловно, такие утилиты как iostat являются эффективным решением для анализа дисковой активности. Однако iotop в этом отношении является еще более полезным инструментом.

Пример работы утилиты iotop

iotop позволяет выводить информацию о дисковой активности для каждого потока в системе (или для списка интересующих процессов). Информация может выводиться либо в режиме реального времени, либо в аккумулятивном представлении.

iperf
iperf является одним из самых простых решений для измерения производительности сети между двумя отдельно взятыми узлами.

При этом на одном из узлов iperf запускается в режиме сервера

iperf -s

а на другом в режиме клиента:

iperf -c server_hostname

По умолчанию замер осуществляется на протяжении десяти секунд. С помощью различных опций можно задать отличный от стандартного интервал измерения или альтернативно объем передаваемых данных.

Пример работы утилиты iperf

Наличие различных TCP параметров, а также возможность запуска в UDP-режиме делаетiperf исключительно полезным инструментом для анализа сетевых проблем.

mtr
mtr — это бесплатная утилита, одновременно сочетающая в себе возможности программping и traceroute.

Пример работы утилиты mtr

В непрерывном режиме mtr выводит информацию о маршруте для заданного имени хоста, а также набор статистических данных о пингах до каждого промежуточного узла. Данный инструмент крайне полезен для диагностики проблем с маршрутизацией или сетевыми задержками.

curl
curl — это, пожалуй, наиболее известный среди рассматриваемых инструментов. Он позволяет загружать данные по одному из 21 поддерживаемых протоколов.

Пример работы утилиты curl

curl можно использовать, например, для анализа ответов веб-серверов или HTTP заголовков. Бесчисленное количество опций в свою очередь позволяют сформировать практически любой запрос.

iptraf
Время от времени приходится сталкиваться с ситуациями, когда приложение устанавливает сетевые соединения, о которых мы даже не подозреваем. Для диагностики подобных ситуаций полезным может стать монитор сетевых соединений — iptraf.

Работать с iptraf можно в четырех режимах:

  • мониторинг IP трафика;
  • общая статистика для всех сетевых интерфейсов;
  • детализированная статистика для отдельного взятого интерфейса;
  • статистические срезы (в зависимости от порта или размера пакетов);
  • LAN мониторинг;

Пример работы утилиты iptraf

Разумеется, ко всему этому прилагается гибкость настройки, сетевые фильтры и возможность запуска в фоновом режиме. В целом, iptraf — это довольно эффективный, но в тоже время простой в использовании инструмент.

Для более серьезного анализа имеет смысл прибегнуть к таким решениями как tcpdump.

httperf
Зачастую анализ проблем с производительностью невозможен без запуска нагрузочных тестов. При этом иногда даже не требуются сложные тесты и детальными сценарии, а достаточно лишь сгенерировать адекватный уровень нагрузки с помощью потока HTTP запросов.

httperf относится к числу подобных консольных генераторов нагрузки. К примеру, следующий вызов:

httperf --server=hostname --rate=10 --num-conns=1000

отправит 1000 запросов к целевому серверу с интенсивностью 10 запросов в секунду. И если поставленной задаче не помешает, к примеру, ограничение пропускной способности сети, то можно будет получить базовую информацию о том, как сервер справился с нагрузкой.

Пример работы утилиты httperf

multitail
Наверняка многим приходилось сталкиваться с использованием утилиты tail в followформате, при котором в режиме реального времени выводится не только конец файла, но и обновления в нем по мере роста. Но что если требует одновременный просмотр нескольких логов баз данных и веб-серверов?

multitail — идеальное решение для подобных задач. Подобно работе утилиты screenmultitail выводит содержимое файлов разбивая терминал на несколько окон (возможна как вертикальная, так и горизонтальная ориентация).

Удобно? А теперь представьте, что все это дополнено следующими возможностями:

  • фильтрация и подсветка информации с использованием регулярных выражений;
  • подавление дублирующих записей;
  • визуальное и звуковое оповещение при появления заданного фрагмента текста;
  • возможность вертикального и горизонтального скроллинга.

И это далеко не полный список возможностей. В любом случае, не лишним будет иметь подобный инструмент на вооружении.

Источник : http://webperformance.ru/2011/10/17/linux-utils/

Запись опубликована в рубрике *Unix,*Linux. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Я не спамер This plugin created by Alexei91