Зачем нужна команда htop в Linux?
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Зачем нужна команда htop в Linux
htop — это интерактивный инструмент мониторинга процессов и ресурсов в Linux. Это улучшенная версия встроенной команды top.
Что показывает htop
htop отображает в реальном времени:
- Использование CPU (процессора)
- Использование памяти (RAM)
- Использование SWAP
- Список запущенных процессов
- Идентификатор процесса (PID)
- Приоритет процесса
- Время выполнения процесса
- Процент CPU и памяти для каждого процесса
Основное использование
1. Поиск проблем с производительностью
# Запуск
htop
# Видишь процесс Python, который съедает 90% CPU?
# Проблема в цикле или алгоритме
2. Отслеживание утечек памяти
htop
# Видишь, что процесс Java растёт с 1GB до 5GB?
# Есть утечка памяти
3. Поиск «зависших» процессов
htop
# Процесс имеет статус Z (зомби) или D (ожидание ввода-вывода)?
# Нужно килить или перезагружать
Сравнение top vs htop
| Функция | top | htop |
|---|---|---|
| Интерактивность | Базовая | Полная |
| Дизайн | Текстовый | Цветной, удобный |
| Навигация | Стрелки и команды | Интуитивные горячие клавиши |
| Горизонтальная прокрутка | Нет | Есть |
| Tree (древовидное отображение) | Нет | Есть |
| Фильтрация процессов | Сложная | Простая |
| Поиск по имени | Сложный | Встроенная функция |
Практические примеры использования
1. Найти процесс Python, съедающий CPU
htop
# В главном экране сразу видно, какой процесс грузит систему
# Нажать P (сортировка по CPU)
2. Убить зависший процесс
htop
# Выбрать процесс (стрелками)
# Нажать K (kill signal)
# Выбрать сигнал: 9 (SIGKILL) или 15 (SIGTERM)
3. Отследить количество потоков в приложении
htop
# Найти основной процесс
# Нажать T (tree view) — видны все дочерние потоки
4. Мониторить использование памяти в реальном времени
htop -p 1234
# Отслеживать только процесс с PID 1234
# Полезно для долгоживущих приложений
Горячие клавиши в htop
F1 или h — Справка
F3 или / — Поиск по имени процесса
F4 или \ — Фильтр (показать только определённые процессы)
F5 или t — Tree view (иерархия процессов)
F6 или <,> — Выбор колонки для сортировки
F9 или k — Kill (убить процесс)
F10 или q — Выход
P — Сортировка по CPU
M — Сортировка по памяти
T — Сортировка по времени выполнения
u — Фильтр по пользователю
z — Вкл/выкл цвета
Примеры команд в терминале
Просмотр всех процессов
htop
Просмотр процессов конкретного пользователя
htop -u username
Просмотр конкретного процесса
htop -p 1234 # PID 1234
htop -p 1234,5678,9012 # Несколько PID
Отмониторить Java приложение
htop -p $(pgrep java)
Отмониторить все Python процессы
htop -u $(whoami) # Все процессы текущего пользователя
Использование для Python разработчика
1. Отследить утечки памяти в скрипте
# Терминал 1: запустить скрипт
python my_script.py
# Терминал 2: открыть htop
htop -p $(pgrep python)
# Смотреть, растёт ли RES (реальная память)
2. Оптимизировать параллельную обработку
# script.py с asyncio
import asyncio
async def fetch_data():
tasks = [asyncio.sleep(1) for _ in range(100)]
await asyncio.gather(*tasks)
# В htop видно, сколько потоков / работников используется
htop -p $(pgrep -f 'python script.py')
# Видно: сколько CPU используется, сколько памяти
3. Поиск проблем с многопроцессностью
from multiprocessing import Pool
with Pool(4) as p: # 4 worker процесса
results = p.map(cpu_intensive_task, data)
# В htop видно ровно 4 дочерних процесса Python
Система мониторинга в production
В production обычно используют более мощные инструменты:
# Установка htop
sudo apt-get install htop # Debian/Ubuntu
sudo yum install htop # CentOS/RHEL
brew install htop # macOS
# На сервере часто используют:
htop (интерактивный)
top (стандартный)
Watch (повторный запуск команды)
strace (отслеживание системных вызовов)
dstat (расширенная статистика)
prometheus + grafana (мониторинг)
Практические советы
# Установить формат вывода
export PAGER=less
htop
# Запустить в non-interactive режиме (для скриптов)
htop -b -n 1 # Одна итерация, вывод в файл/pipe
# Экспортировать в файл
htop -b -n 1 > htop_output.txt
Вывод: htop — это essential инструмент для быстрой диагностики проблем с производительностью в Linux. Она показывает в реальном времени, что грузит CPU и память, какие процессы зависли, и позволяет быстро их закрыть. Для Python разработчика это необходимо при отладке производительности и поиске утечек памяти.