
Netstat давно считается устаревшим, ps aux может обрезать командные строки, а стандартный top придётся донастраивать… Однако мы всё равно набираем эти три команды для проверки, потому что так было написано в учебниках. Под катом расскажу, что реально стоит использовать вместо классики, и где старое-доброе всё ещё уместно.
Для тех, кто не в теме, top, ps и netstat — это классическая троица из каждого Linux-учебника (почитайте на гитхаб это и это). Эти утилиты нужны, чтобы следить за процессами, памятью и сетевыми соединениями.
Зачем вообще что-то менять
Можно и не менять, ведь классика стоит везде, работает везде, и в минимальном контейнере у вас просто нет другого выбора. Но у старой троицы есть проблемки:
Классический top довольно аскетичен — он мало что знает про виртуальные машины, контейнеры, steal time, cgroup-лимиты, а жить нам приходится именно в этом мире.
У ps вывод обрезается под ширину терминала, дерево процессов читается с болью в глазах, а статусы вроде D и Z приходится вспоминать по памяти.
А Netstat парсит текстовые файлы в /proc/net/, и на сервере с большим числом соединений превращается в слайд-шоу из нулевых.
К счастью, их можно заменить другими утилитами.
Что использовать вместо top
Первый кандидат — htop, он всё ещё хорош, если привыкли. Тут и цветные столбцы, и дерево процессов, и поиск по F3, и убийство по F9. Однако в 2026 году это базовый минимум, поэтому рассмотрим варианты получше.
Если хочется картину целиком, с диском, сетью, температурой и в некоторых случаях даже GPU, смотрите на btop. Проект начинался как bashtop на Bash, затем появился bpytop на Python, а в 2021 году автор выпустил переписанный на C++ btop.

Конечно, выглядит так, будто его рисовали для фильма про хакеров, но установить его легко, и работает он быстро:
sudo apt install btop # Debian/Ubuntu git clone https://github.com/aristocratos/btop.git # Собрать из исходников cd btop && make && sudo make install
Для серверов, куда не хочется лишний раз ходить по SSH, лучше glances. Он умеет отдавать ту же сводку в браузер одной командой.

Запуск с веб-интерфейсом:
pip install glances[web] glances -w
Если нужно не смотреть, а расследовать, то можно использовать atop. Он по умолчанию пишет лог системной активности с интервалом в десять секунд (время можно изменить). Установка через:
sudo apt install atop sudo systemctl enable atop
Есть и минималистичный вариант — bottom на Rust. Он легче btop и приятнее htop, но на боевом сервере я бы не таскал всё сразу. Выбирайте htop плюс что-то потяжелее.
Опенсорсные внешние варианты:
Beszel — лёгкий self-hosted мониторинг с hub + agent. В браузере показывает CPU, RAM, load average, диски, I/O, сеть, температуры и метрики Docker/Podman-контейнеров.
Glances — тот самый Glances можно использовать не только в терминале. Он поднимает WebUI через glances -w и отдаёт в браузер CPU, память, диски, сеть, процессы, датчики и контейнеры.
Monitorix — старый, но живой и довольно лёгкий мониторинг Linux/Unix. Collector работает демоном, а встроенный HTTP-сервер отдаёт графики в браузер.
Cockpit — уже скорее веб-консоль, чем мониторинг. Через браузер можно смотреть состояние сервера, нагрузку, логи, сеть и хранилища, а заодно управлять системными службами.
Что использовать вместо ps
Прежде чем ставить новое, проверьте ваш старый ps, ведь классическая боль с обрезанными командами лечится двумя w:
ps auxww # не обрезать командную строку ps auxf # лесенка-дерево прямо в выводе ps -eo pid,ppid,%cpu,%mem,stat,etime,cmd --sort=-%cpu | head
Последняя строка это, по сути, top на одну итерацию, и в связке с watch она закрывает половину сценариев на сервере, куда ничего нельзя доустановить. Заодно запомните два статуса:
D — это процесс, застрявший в непрерываемом ожидании, обычно I/O, и убить его нельзя, пока он не отвиснет.
Z — это зомби, который уже умер, и надо искать родителя, который забыл его похоронить.
Среди более сильных аналогов — растовый procs. Он показывает процессы с цветами и деревом, TCP/UDP-порты, I/O и имя Docker-контейнера. Используем через команды:
cargo install procs # установка procs --tree # дерево процессов procs --sortd cpu # сортировка процессов в порядке убывания procs --watch-interval 1 # живой режим, как top
Если нужна история, а не снимок, ставьте pidstat из sysstat — он показывает CPU, I/O и память по отдельным процессам. Но для понимания картины за прошлую ночь лучше собирать историю через atop.

Также советую утилиты из набора bcc — по установке на ваш дистрибутив смотрите тут. Они цепляются к ядру через eBPF и показывают события в реальном времени:
sudo execsnoop # новые exec() и короткоживущие команды sudo opensnoop # кто какие файлы открывает sudo tcptop # топ по TCP-трафику, как iotop для сети
Execsnoop точно вам понравится, ведь ps не видит процесс, который родился и умер между двумя опросами, а именно так выглядит половина дебага кронов и воркеров. Из минусов — нужны свежие ядра и root, на старых дистрибутивах половина утилит просто не запустится.

В Debian/Ubuntu утилиты из bpfcc-tools могут называться execsnoop-bpfcc, opensnoop-bpfcc и т. д. Также советую почитать мою статью «Шпаргалка по поиску узких мест в Linux: топ утилит на все случаи жизни».
Опенсорсные внешние варианты:
Webmin — в нём есть отдельный модуль Running Processes. Через браузер можно смотреть дерево процессов, искать их по владельцу или командной строке, сортировать по CPU, посылать сигналы и завершать процессы.
Monit — полезнее ps, когда интересует не список всего подряд, а конкретные демоны. Следит за процессами, файлами, файловыми системами и хостами, умеет реагировать на условия и автоматически перезапускать сервис.
Netdata — один из самых подробных вариантов. Netdata Agent (открыт под GPLv3+) собирает CPU, RAM, диски, сеть, приложения, контейнеры и другие метрики с секундной детализацией и хранит историю.
Что использовать вместо netstat
Вот тут менять надо без вариантов, причём уже давно. В Debian net-tools давно не входит в новые установки, а современные дистрибутивы в целом делают ставку на iproute2 и ss. Однако многие ставят его обратно руками по привычке.
Тут, мне кажется, вам хватит базовой шпаргалки по ss:
sudo ss -tulpn # кто что слушает, с процессами ss -s # сводка по всем сокетам ss -tnp state established # только установленные соединения ss -tn '( dport = :443 )' # фильтр по порту назначения ss -o state established # TCP-таймеры соединений ss -ti # покажет TCP-информацию, включая congestion control, RTT, размер окна
ss умеет фильтровать по состоянию соединения, диапазону портов, адресам, интерфейсам. Для диагностики сетевых проблем он незаменим, и на самом деле опций у него намного больше — их можно почитать тут.

Единственное место, где netstat ещё всплывает, это древние скрипты мониторинга. Если у вас в заббиксе или кроне живут конструкции с netstat -an | grep -c ESTABLISHED, перепишите их на ss -s — удивитесь, сколько процессорного времени сэкономите.
Например, старое:
netstat -an | grep ESTABLISHED | wc -l
Лучше переписать так:
ss -Htn state established | wc -l
Опенсорсные внешние варианты:
ntopng — веб-сервис мониторинга сетевого трафика под GPLv3. Показывает хосты, IP, порты, протоколы L7, throughput и сетевые потоки.
LibreNMS — полноценная GPL-система сетевого мониторинга с WebUI. В первую очередь работает через SNMP и больше подходит не одному Linux-хосту, а сети из серверов, маршрутизаторов, коммутаторов и другого оборудования.
OpenNMS Horizon — более тяжёлая платформа для большой сети. Собирает SNMP, HTTP/S, JMX и другие данные, умеет принимать NetFlow v5/v9, IPFIX и sFlow, строить топологию и алерты.
Arkime — вариант, когда одних счётчиков мало и нужно расследовать конкретные соединения. Система пассивно захватывает трафик, индексирует сетевые сессии и при необходимости сохраняет полный PCAP.
EtherApe — графический сетевой монитор, который использует libpcap и рисует узлы и связи между ними, причём размер и активность линий меняются вместе с трафиком.
Сеть и диск анализируйте отдельно
Кто «ест» трафик, смотрите через nethogs — утилита показывает потребление сети по процессам, а не по соединениям. Кто «ест» канал целиком через iftop (тот же top), только про сетевые потоки. Кто «ест» диск — iotop:
sudo nethogs # процессы по трафику sudo iftop # мониторинг сетевого трафика sudo iotop -oP # только те, кто прямо сейчас пишет или читает
Флаги -oP у iotop запомните наизусть, так как без них утилита показывает все процессы подряд, и найти виновника сложнее. Связка из этих трёх товарищей закрывает все вопросы, когда нагрузка не в CPU, а в сети или диске.
Сервер тормозит, найдите проблему за 30 секунд
Соберу всё вышеописанное в одну последовательность. Сначала смотрим uptime — если load average выше числа ядер, то нагрузка есть:
uptime nproc
Потом htop, там обратите внимание на цвет шкал — «зелёный потолок» значит виноваты процессы, «серый» значит steal и вопросы к хостеру.
htop
На виртуалке отдельно проверяйте steal time. Если гипервизор регулярно забирает крупную долю процессорного времени, то проблема уже за пределами вашей ВМ. Вам нужна колонка %steal:
mpstat -P ALL 1 3
Если CPU чистый, запускайте iotop -oP, параллельно глядите трафик по процессам через nethogs:
sudo iotop -oP sudo nethogs
В финале смотрим сокеты:
ss -s ss -Htn state established | wc -l
Первая команда даёт общую статистику по сокетам, вторая считает установленные TCP-соединения. Ключ -H здесь нужен, чтобы wc -l не посчитал строку заголовка как ещё одно соединение.
Вся диагностика занимает меньше минуты и покрывает четыре классических источника подтормаживаний — CPU, диск, сеть и соединения. Классический набор из top и netstat отсюда выталкивается безболезненно, а ps остаётся разве для того, чтобы выяснить, жив ли процесс:
uptime nproc htop mpstat -P ALL 1 3 sudo iotop -oP sudo nethogs ss -s ss -Htn state established | wc -l
Ставится весь зверинец из статьи стандартно:
apt install htop iotop nethogs sysstat bpfcc-tools # Debian и Ubuntu dnf install htop iotop nethogs sysstat bcc-tools # Fedora / RHEL-подобные
Procs, btop и bottom удобнее ставить из релизов на GitHub.
Когда старое лучше
Теперь оговорки, без них картина нечестная. В минимальном контейнере или rescue-среде может оказаться только BusyBox с урезанным ps, поэтому базовый синтаксис забывать не стоит. Htop на сервере с двумя сотнями ядер превратится в новогоднюю ёлку, а btop, каким бы красивым он ни был, на древней железке 2010 года сам скушает CPU.
И главное, ни один новый инструмент не отменяет понимания, откуда данные берутся, ведь и top, и btop, и ps читают один и тот же /proc, разница только в подаче. Кто понимает, что такое stat, load average и steal time, тому и классического top хватит. Новые утилиты просто экономят время и нервы…
А что в вашем наборе? Может, я зря обошёл вниманием ваш любимый инструмент — пишите в комментариях, чем вы заменили top, ps и netstat.
© 2026 ООО «МТ ФИНАНС»
Комментарии (2)

vladpriv
17.09.2026 14:04Сейчас каждый с помощью ИИ может быстро себе "навайбодить" альтернативу стандартным утилитам Linux на любой вкус. Я каждый день узнаю о новых интересных утилитах. Мне лично нравится инструмент SysMon: https://github.com/riteshdhurwey/SysMon. Приятный TUI для мониторинга состояния системы
shuchkin
btop красивый