The Daily Newsstand · Free, Always
Thursday, September 17, 2026

Чем заменить top, ps и netstat в 2026 году, и когда их лучше не трогать

Translate

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. 

btop

btop

Конечно, выглядит так, будто его рисовали для фильма про хакеров, но установить его легко, и работает он быстро:

sudo apt install btop       # Debian/Ubuntu

git clone https://github.com/aristocratos/btop.git       # Собрать из исходников

cd btop && make && sudo make install 

Для серверов, куда не хочется лишний раз ходить по SSH, лучше glances. Он умеет отдавать ту же сводку в браузер одной командой. 

glances

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

sysstat

sysstat 

Также советую утилиты из набора 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 умеет фильтровать по состоянию соединения, диапазону портов, адресам, интерфейсам. Для диагностики сетевых проблем он незаменим, и на самом деле опций у него намного больше — их можно почитать тут

sudo ss -tulpn

sudo ss -tulpn

Единственное место, где 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.

View the original on Хабр

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.