Стандартные инструменты для диагностики системы Linux Ядро: * perf — (в прошлом performance counters for Linux) — доступ к различным внутренним счётчикам ядра; незаменимый инструмент для выполнения профайлинга ядра/операционной системы * ftrace — трассировщик вызовов функций внутри ядра Linux * stap — скриптовый язык и инструмент для комплексной диагностики ядра и процессов Linux * lttng — (Linux Trace Toolkit Next Generation) инструмент для трассировки ядра, программ и библиотек Linux * bcc (BPF) — (сравнительно) новый и очень мощный инструмент для трассировки и манипуляции ядром Linux, основанный на Berkeley Packet Filter, позволяет делать космические вещи Ввод/вывод: * iostat (sysstat) — статистика ввода/вывода по заданному устройству (количество операций записи/чтения в единицу времени, скорость записи/чтения) * pidstat (sysstat) — нагрузка на процессор, память и устройства от конкретного процесса (заданного по имени или номеру) * pcstat — использование кэша (какой процент файла попадает в кэш, какой нет) * lsof — информация об открытых процессом файлах blktrace Системные и библиотечные вызовы: * strace — информация о системных вызовов, выполняемых процессом, позволяет понять или по крайней мере лучше разобраться, почему процесс висит или потребляет много ресурсов * ltrace — трассировка библиотечных вызовов (которые не обязательно являются системными) Аппаратные счётчики: * tiptop — информация о процессах в реальном времени, похожа на top, но в отличие от него данные преимущественно берутся с аппаратных счётчиков * numastat — просмотр информации об использовании памяти процессами/процессорами в системах с NUMA-архитектурой Сеть: * netstat — классический инструмент для просмотра конфигурации сети (сокетов, интерфейсов и так далее) * ss — socket statistics, позволяет получить информацию об открытых сокетах и их состоянии (похожа на netstat, но умеет больше) * ethtool — просмотр настроек и состояния ethernet-интерфейса * snmpget — получение данных по SNMP * lldptool — настройка LLDP и просмотр данных LLDP * nicstat — статистика использования сетевой карты (сетевого интерфейса) * ip — конфигурация и статистика стека TCP/IP Linux * ifstat — статистика использования сетевого интерфейса в реальном времени Процессы: * top — информация о наиболее активных (наиболее ресурсоёмки) процессах + общая информация о системе * vmstat — данные об использовании виртуальной памяти * free — информация о свободной памяти, кэше, буферах * slabtop — информация о заполнении SLAB-кэша Процессор: * mpstat (sysstat) — общая информация об использовании процессора (одного или всех процессоров) * turbostat (kernel-tools) — информация о топологии процессора, частоте, питании, температуре * rdmsr — (Read from Model Specific Register) чтение из моделезависимых регистров (позволяет оценить использование LLC-кэша и прочее) Универсальные: * sar — (system activity report) информация о системной активности в реальном времени (диск, память, процессор и так далее) * dstat — универсальный инструмент для сбора информации о системе (vmstat, iostat, netstat, ifstat и ещё много других в одном флаконе) * dmesg — журнал сообщений ядра с момента загрузки системы * /proc — псевдофайловая система предоставляющая доступ к внутренним данным/счётчикам ядра * sysdig — универсальный инструмент для сбора и анализа данных о системе (сотни различных источников скомбинированные вместе) #tools #linux

Теги других блогов: инструменты Linux диагностика