Что такое команда top в Linux?

«Что такое команда top в Linux?» — вопрос из категории Linux, который задают на 24% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Команда top — это интерактивный системный монитор в реальном времени. Я использую её для быстрой диагностики нагрузки на серверах, чтобы понять, какие процессы потребляют больше всего CPU или памяти.

Основная информация в выводе top:

  • Первая строка (uptime & load average): Время работы системы и средняя нагрузка за 1, 5 и 15 минут.
  • Задачи (Tasks): Общее количество процессов и их состояние (running, sleeping, stopped, zombie).
  • Процессор (%Cpu(s)): Разбивка использования CPU: us (пользовательские процессы), sy (системные), id (простой).
  • Память (MiB Mem): Использование оперативной и swap-памяти.
  • Таблица процессов: Динамический список процессов с PID, пользователем, приоритетом (PR/NI), %CPU, %MEM и командой.

Практическое использование в DevOps:

# Запуск с сортировкой по памяти (полезно при поиске утечек)
top -o %MEM

# Запуск в пакетном режиме для логирования (например, в скрипте)
top -b -n 1 > system_snapshot.txt

# Мониторинг конкретного пользователя
top -u appuser

Горячие клавиши (в интерактивном режиме):

  • Shift+M – сортировка по использованию памяти.
  • Shift+P – сортировка по использованию CPU (по умолчанию).
  • k – завершить процесс (запросит PID).
  • 1 – развернуть информацию по всем ядрам CPU.
  • q – выход.

Для более продвинутого и удобного для скриптов мониторинга я часто предпочитаю htop или pidstat.