Шпаргалка по поиску узких мест в Linux

Многие уже видели старенькую схему Брендана Грегга, где каждой подсистеме сопоставлены CLI-утилиты. Она правда полезная, но когда «горит», мы бежим в интернет, а не выискиваем систему и команду. В статье я собрал тулзы с картинки, а также добавил опенсорсных утилит, которые пригодятся для мониторинга.


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

Приложения и системные библиотеки


На этом уровне обычно и находится причина зависаний, потому что именно приложения решают, чем грузить ядро и железо.
  • один процесс стабильно ест CPU
  • приложение зависло в системных вызовах
  • задержки из-за DNS
  • утечки дескрипторов
  • короткоживущие процессы

Strace отвечает за системные вызовы:

strace -c -p <PID>

Ltrace смотрит динамические библиотеки:

ltrace -f ./myapp

Задержки DNS:

sudo gethostlatency

Логи systemd:

journalctl -u <service> -n 200 --no-pager

Дополнительные инструменты:

  • rr record/replay debugger
  • bpftrace

  • sysdig
  • lnav
  • procps-ng

Интерфейс системных вызовов и ядро


Общая статистика CPU:

perf stat -a -- sleep 2

Профиль процесса:

perf top -g -p <PID>

ftrace:

trace-cmd record -e sys_enter_read -e sys_exit_read
trace-cmd report

LTTng:

# Создаём сессию
sudo lttng create syswide --output=/tmp/lttng-trace
# Включаем события
sudo lttng enable-event -k sched_switch,sched_wakeup
sudo lttng enable-event -k block_rq_issue,block_rq_complete
sudo lttng enable-event -k net_dev_queue,netif_receive_skb
sudo lttng start
sleep 30
sudo lttng stop
sudo lttng destroy
babeltrace /tmp/lttng-trace

Файловая система и VFS


Открытые файлы:

lsof -p PID
lsof +D /path/to/dir

Активность файловой системы:

sudo fatrace -c

Короткоживущие файлы:

sudo filelife

Кэш страниц:

pcstat somefile

SLAB:

slabtop

Блочные устройства


Топология дисков:

lsblk -f

Нагрузка на диск:

iostat -x -z 2

Кто делает I/O:

sudo iotop

Тест чтения:

sudo hdparm -t /dev/sda

NVMe:

sudo nvme smart-log /dev/nvme0n1

Сетевой стек


Соединения:

ss -tunap

Интерфейсы:

ip -s link
ip route show

Статистика NIC:

ethtool -S eth0

SNMP счётчики:

nstat -z

LLDP:

sudo lldptool -t -i eth0 -V

Dropwatch:

sudo dropwatch arp

Прослушивание портов:

sudo solisten
sudo solisten 1

Планировщик и CPU


Нагрузка по ядрам:

mpstat -P ALL 1

Процессы:

pidstat -u 1

Очередь планировщика:

sudo runqlen 1

Профилирование:

perf top -g -p PID
perf stat -e cycles,instructions,cache-misses -p PID sleep 1

Прерывания:

sudo softirqs
sudo hardirqs

Turbo Boost:

turbostat 1
sudo rdmsr 0x10A
sudo showboost

Память


Память:

free -h

Общая статистика:

vmstat 2

NUMA:

numastat
numastat -p PID

SAR:

sar -r 1
sar -W 1

Поиск утечек:

sudo memleak

OOM:

sudo oomkill

RSS:

ps aux --sort=-rss

Аппаратный уровень


Perf counters:

perf stat -e cycles,instructions,cache-misses -p PID sleep 1

Частоты CPU:

cpupower frequency-info

SMART:

sudo smartctl -a /dev/sda
sudo nvme smart-log /dev/nvme0n1

IPMI:

ipmitool sensor

Температуры:

sensors

Общий мониторинг:

dstat -tcmnd
Источник:
https://habr.com/ru/companies/ruvds/articles/1000218/

Комментарии ()

    Авторизация

    GitHubGoogleVkontakteYandex
    Есть вопрос или предложение пиши в Telegram @cloudsv

    Прямой эфир

    cloudsv 07 января 2026, 07:20
    Установка и настройка minidlna 5
    zkutlin 29 мая 2025, 06:14
    Обновление Scala Rider G4 53
    cloudsv 26 октября 2024, 11:31
    MySQL Workbench падает при подключении 4
    Diego mont 25 мая 2023, 07:04
    Полезные боты в Telegram 2
    cloudsv 03 ноября 2022, 03:42
    Настройка прокси mtproto для Telegram 52
    cloudsv 03 января 2022, 10:50
    Let's Encrypt это легко и просто 4
    cloudsv 05 августа 2020, 11:57
    Мне вчера стукнуло 34 4
    cloudsv 23 июля 2025, 20:25
    Linux В Proton 10.x перестал работать gamepad 0
    cloudsv 05 октября 2024, 14:14
    Linux Отключение gvfs wsdd (Web Service Discovery) 0
    cloudsv 07 августа 2023, 22:56
    Linux Asus ROG x13 flow 2022 GV301RE и Linux 0
    cloudsv 15 апреля 2023, 16:23
    Linux Уведомление о смены workspace в X11 Linux 0
    cloudsv 17 октября 2020, 09:55
    Linux Отключить DHCP IPv6 в systemd 0
    cloudsv 30 июля 2020, 21:54
    О жизни Мне вчера стукнуло 34 4
    cloudsv 15 апреля 2020, 15:45
    Linux Основные hotkeys редактора Vim 0
    cloudsv 01 октября 2019, 08:00
    Linux Локальный редирект порта в Linux 0