Linux — утилиты для тестирования

Linux — утилиты для тестирования

Проблема — это когда сервер работает, но не так как должен. Нужно найти узкое место, об этом поговорим в этой статье. В этой статье будут кратко описаны инструменты для поиска «узкого места» в системе. Отдельными статьями команды будут рассмотрены подробно.

В первую очередь — азы. И, кстати, статья будет рассмотрена на примере Ubuntu server 16.04.
Для установки пакета пишем sudo apt-get install <название>
Для поиска пакета пишем sudo apt-cache search <название>
Для получения информации о пакете sudo apt-cache show <название>

Носители данных.

1)iotop — I\O монитор, например iotop -obn 1 выведет список PID, которые сейчас используют диск и скорость.
Список параметров отображен в таблице:

ПараметрОписание
-oотображать только процессы, которые в данный момент выполняют операции I/O с диском (по умолчанию – отображаются все активные процессы)
-bотключить интерактивный режим
-nзадать число выполнения проверок перед выходом
-dинтервал (секунды) между проверками
-pPID процесса, который надо отслеживать
-uимя пользователя, которого надо отслеживать
-Pотображать только процессы (по-умолчанию – все процессы и потоки)
-kотображать инфомрацию в KB
-tдобавить отображение времени выполнения проверки
-q (-qq, -qqq)уменьшить количество выводимой информации.

2)iostat — служба репортов CPU для статистики и I\O для устройств и партиций.
-d – отображать только использование дисков;
-c – отобразить только использование CPU;
-j – отобразить имя раздела (ID | LABEL | PATH | UUID);
-k – отобразить данные в килобайтах;
-m – отобразить данные в мегабайтах;
-p – отобразить статистику по указанному блочному устройству;
-t – отобразить время выполнения теста;
-x – отобращить расширенную статистику;
Можно выполнить 2 раза с интервалом в 1 секунду, только для диска sda:
iostat -d -t -p sda 1 2
Описание колонок:

КолонкаОписание
rrqm/sобобщенное количество запросов на чтение в секунду;
wrqm/sобобщенное количество запросов на запись в секунду;
r/sколичество запросов на чтение в секунду;
w/sколичество запросов на запись в секунду;
rMB/sколичество МБ при чтении с диска в секунду;
wMB/sколичество МБ при записи на диск в секунду;
avgrq-szсредний размер (в секторах) запросов к диску;
avgqu-szсредний размер очереди запросов к диску;
awaitсреднее время (милисекунды) на обработку запросов к диску (включает в себя время, потраченное в очереди на обработку и время на обработку запроса);
r_awaitсреднее время (милисекунды) на обработку запросов чтения к диску (включает в себя время, потраченное в очереди на обработку и время на обработку запроса);
w_awaitсреднее время (милисекунды) на обработку запросов запи ик диску (включает в себя время, потраченное в очереди на обработку и время на обработку запроса);
svctmсреднее время (милисекунды) I/O запросов (не образайте внимания на неё – будет удалена в ближайшем будущем);
%util% CPU, затраченный на передачу I/O запросов к диску (“пропускная способность” диска);

3)smartctrl — smart информация о дисках.
4)lsblk — выводит общую информацию о дисках, md массивах, lvm. О интересных ключах:

ПараметрОписание
aвыведет информацию о всех устройствах (да же пустых)
bпечать информации о размере в читаемом формате
dне показывает slave устройства (/dev/sdaX — slave устройство)
fинформация о файловой системе
rВыводит в формате raw, показывает mountpoint, partlabel, hex символы.

Процессы

1)top — консольный диспетчер задач
2)htop — подробный консольный диспетчер задач
3)perf top — это трейсер ядра, он показывает все процессы в системе, конкретный процессор, конкретный процесс, его call_trace.
4)ps -A — вывод процессов в виде текста, не много отличий от top, но можно сделать grep.

Сеть

1)mii-tool — общая информация о сетевом интерфейсе
2)ifconfig — информация о имеющихся подключениях
3)nicstat — статистика трафика
4)nc -lvk 1234 — Вывод информации о порте
5)netstat -anltp | grep "LISTEN" — список «слушащих» портов
6)strace -e write -p 3044 — strace «цепляется» к процессу 3044 и перехватывает запись.
7)iptraf — лжеграфический интерфейс, может отследить статистику сетевого трафика по TCP,IP трафик по сетевым интерфейсам, статистику сетевого трафика по протокола, статистику сетевого трафика по портам.

Память

free — использование ОЗУ и SWAP
vmstat — более подробная информация об ОЗУ и SWAP

Процессор

1)mpstat -P ALL — выводит подробную информацию о активности. mpstat -P 0 — выведет информацию о ядре 0.
2)blktrace — утилита блокирует layer IO и предоставляет информацию о очереди операций к userspace
blktrace -w 1 -d /dev/sdf -o — | blkparse -i — Данная команда выведет подробную информацию о I\O /dev/sdf и процессоре. Отображается статистка по операциям ввода-вывода для всех задействованных процессорных ядер;

В начале идет таблица, состоящая из следующих колонок:

  • мажорный и минорный номера устройства (в нашем случае 8, 32);
  • ядро, задействованное при выполнении операции;
  • порядковый номер операции;
  • время выполнения операции (в миллисекундах);
  • идентификатор процесса (PID);
  • событие (blktrace отслеживает события жизненного цикла всех операций ввода-вывода, в том числе и свои собственные);
  • RWBS (R —чтение, W — запись, B — барьерная операция, S — синхронная операция);
  • блок, с которого началось выполнение операции+число блоков;
  • имя процесса, выполнившего операцию (указывается в квадратных скобках).

Основные операции обозначаются так:

  • A — операция ввода-вывода была передана другому устройству;
  • C — операция завершена;
  • F — операция объединена со смежной операцией в очереди;
  • I — запрос на выполнение операции поставлен в очередь;
  • M — операция объединена со смежной операцией в очереди;
  • Q — операция поставлена в очередь;
  • T — отключено по причине таймаута;
  • X — операция разбита на несколько операций.

Файлы

1)ls -вывод файлов. Имеет очень много ключей, которые сейчас рассмотрим:

КлючОписание
-1выдавать один файл на строку. Эта опция включается по умолчанию.
-aвыдавать все файлы в каталогах, включая скрытые файлы, начинающиеся с точки.
-bЗаменять неграфические символы в именах файлов, используя алфавитно-цифровые последовательности, а также последовательности вида -Q, за исключением того, что имена файлов не заключаются в двойные кавычки.
-cсортировать содержимое каталога в соответствии с временем изменения состояния файла. Если с помощью опции -l задан длинный формат, то выдавать время изменения состояния файла вместо времени его модификации.
-dвыдавать имена каталогов, как будто они обычные файлы, вместо того, чтобы показывать их содержимое.
-fне сортировать содержимое каталога; выдавать файлы в том порядке, в котором они записаны на диск.
-hдобавлять к каждому размеру файла букву размера, например, M для двоичных мегабайт (`мебибайт’).
-iвыдавать номер inode (также называемый серийным номером файла и номером индекса) каждого файла, слева от его имени. (Этот номер однозначно идентифицирует каждый файл в каждой файловой системе)
-kесли выдаются размеры файлов, то выдавать их в килобайтах.
-lв дополнении к имени каждого файла, выводятся тип файла, права доступа к файлу, количество ссылок на файл, имя владельца, имя группы, размер файла в байтах и временной штамп (время последней модификации файла, если не задано другое).
-mвыдавать список файлов в строчку с максимально возможным количеством имён файлов на строку, разделяя имена запятой и пробелом.
-nвыдавать числовые UID и GID вместо имён владельца и группы.
-oприменять длинный формат, но не показывать информацию о группе.
-pдобавлять символ, показывающий тип файла, к каждому имени файла. Данная опция похожа на -F, за исключением того, что исполняемые файлы не помечаются.
-qвыдавать знаки вопроса вместо неграфических символов в имени файла. Эта опция включена по умолчанию.
-rсортировать содержимое каталога в обратном порядке.
-sвыдавать размер каждого файла в блоках по 1024 байта слева от имени файла.
-tсортировать по времени последней модификации вместо того, чтобы производить сортировку по алфавиту. Самые свежие файлы будут отображаться первыми.
-uсортировать по времени последнего доступа к файлу, вместо времени последней модификации. Если задан длинный формат вывода, выдавать время последнего доступа вместо времени последней модификации.
-vпроизводить сортировку в соответствии с номером версии файлов. При этом учитывается, что имена файлов часто содержат номера версий или порядковые номера. Стандартные функции сортировки обычно не обеспечивают сортировку, которую мог бы ожидать человек, так как сортировка производится на основе посимвольного сравнения.
-xвыдавать список файлов в многоколоночном режиме, с сортировкой по горизонтали.
-Aвыдавать все файлы, кроме `.’ и `..’.
-Bне показывать файлы, которые заканчиваются на `~’, если они не заданы в командной строке.
-Cвыдавать файлы в многоколоночном режиме, с сортировкой по вертикали. Опция устанавливается по умолчанию, если стандартный вывод является терминалом.
-Fдобавлять к каждому имени файла символ, показывающий его тип. Для обычных исполняемых файлов это `*’. Для каталога добавляется `/’, для FIFO — `|’, для символических ссылок `@’, для гнёзд `=’, для обычных файлов ничего не добавляется.
-Gне отображать информацию о группе в длинном формате вывода.
-Hделает то же, что и опция -h, но использует официальные единицы измерения СИ.
-Lвыдавать информацию о файлах, на которые указывают символические ссылки, вместо информации о самих символических ссылках.
-Nне заключать в кавычки имена файлов.
-Qзаключать имена файлов в двойные кавычки и показывать неграфические символы как в языке С.
-Rрекурсивно выдавать список содержимого всех каталогов.
-Sпроизводить сортировку по размеру файла, вместо сортировки по алфавиту. Таким образом, наибольшие файлы будут показаны сначала.
-Xпроизводить сортировку в алфавитном порядке по расширениям файлов (символы после последней `.’); файлы без расширений будут показаны первыми.

2)lsof — показывает открытые файлы, сетевые соединения и проч. Основные примеры работы с программой в таблице:

КодОписание
lsof -i 4 -a -p 1234просмотр всех соединений IPv4, открытых процессом с PID = 1234
lsof -i tcp:80просмотр информации о процессе, который прослушивает 80 TCP порт
lsof /dev/hd4Список открытых файлов на устройстве /dev/hd4
lsof /dev/cdromСписок процессов, работающих с CD ROM
lsof -c sshСписок подключений по ssh

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

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