Статьи

Утиліти Linux для аналізу продуктивності

Наш союзник Bikinika

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

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

htop
htop є досить потужну альтернативу стандартній утиліті top. Відрізняється він в першу чергу більш зручним інтерфейсом і можливістю швидко налаштувати відображення інформації про системні ресурси.

З точки зору моніторингу процесів все також реалізовано на високому рівні. htopвиводіт в режим реального часу дані по використанню процесора і пам'яті, а також інші системні метрики (всього їх є більше 50) для кожного активного процесу і потоку. На відміну від top передбачена можливість вертикального і горизонтального скролінгу, а значить ніщо не вислизне від вашої уваги.

На відміну від top передбачена можливість вертикального і горизонтального скролінгу, а значить ніщо не вислизне від вашої уваги

Приклад роботи утиліти htop

Також за допомогою htop можна, наприклад, змінити пріоритет процесу або зовсім його завершити.

dstat
dstat в свою чергу є покращеною альтернативою таким утилітам як vmstatілі sar, а заодно і таким відомим інструментам як iostat і ifstat.

Суть роботи dstat - збір усередненої інформації про використання системних ресурсів із заданим інтервалом виведення даних. Серед кандидатів для аналізу інформація про утилізацію процесора, пам'яті, мережі, диска, файлів підкачки і т.д.

Приклад роботи утиліти dstat

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

iotop
Безумовно, такі утиліти як iostat є ефективним рішенням для аналізу дискової активності. Однак iotop в цьому відношенні є ще більш корисним інструментом.

Однак iotop в цьому відношенні є ще більш корисним інструментом

Приклад роботи утиліти iotop

iotop дозволяє виводити інформацію про дискову активності для кожного потоку в системі (або списком цікавлять процесів). Інформація може виводитися або в режимі реального часу, або в акумулятивний поданні.

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

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

а на іншому в режимі клієнта:

За замовчуванням завмер здійснюється протягом десяти секунд. За допомогою різних опцій можна задати відмінний від стандартного інтервал вимірювання або альтернативно обсяг переданих даних.

Приклад роботи утиліти iperf

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

mtr
mtr - це безкоштовна утиліта, одночасно поєднує в собі можливості программping і traceroute.

mtr   mtr - це безкоштовна утиліта, одночасно поєднує в собі можливості программping і traceroute

Приклад роботи утиліти mtr

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

curl
curl - це, мабуть, найбільш відомий серед розглянутих інструментів. Він дозволяє завантажувати дані по одному з 21 підтримуваних протоколів.

Він дозволяє завантажувати дані по одному з 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 . Додайте в закладки постійне посилання .

Але що якщо необхідно вжити при одночасному перегляд декількох логів баз даних і веб-серверів?
Зручно?