Такие утилиты как 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
Наличие различных 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
— идеальное решение для подобных задач. Подобно работе утилиты screen
multitail
выводит содержимое файлов разбивая терминал на несколько окон (возможна как вертикальная, так и горизонтальная ориентация).
Удобно? А теперь представьте, что все это дополнено следующими возможностями:
- фильтрация и подсветка информации с использованием регулярных выражений;
- подавление дублирующих записей;
- визуальное и звуковое оповещение при появления заданного фрагмента текста;
- возможность вертикального и горизонтального скроллинга.
И это далеко не полный список возможностей. В любом случае, не лишним будет иметь подобный инструмент на вооружении.
Источник : http://webperformance.ru/2011/10/17/linux-utils/
Запись опубликована в рубрике
*Unix,*Linux. Добавьте в закладки
постоянную ссылку.