Ответ
Команда top — это интерактивный системный монитор, который в реальном времени отображает информацию о работающих процессах и общем состоянии системы.
Основная информация, которую показывает top:
- Общая сводка системы: время работы (uptime), количество пользователей, средняя нагрузка (load average).
- Использование ресурсов: загрузка CPU (разбитая на пользовательскую, системную и т.д.), использование оперативной памяти (RAM) и swap-памяти.
- Динамический список процессов с колонками:
PID— идентификатор процесса.USER— владелец процесса.%CPU,%MEM— потребление процессора и памяти.COMMAND— имя команды или процесса.
Пример фрагмента вывода:
top - 15:30:45 up 10 days, 1:23, 2 users, load average: 0.08, 0.03, 0.01
Tasks: 112 total, 1 running, 111 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.1 us, 0.5 sy, 0.0 ni, 97.4 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 7852.3 total, 3245.1 free, 2101.2 used, 2506.0 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used.
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1234 app-user 20 0 400768 98128 18708 S 6.2 1.2 2:30.67 php-fpm
5678 db-user 20 0 1254344 250112 45012 S 1.5 3.1 5:12.45 mysqld
Полезные интерактивные команды внутри top:
P— сортировка по использованию CPU (по умолчанию).M— сортировка по использованию памяти.k— завершить процесс (запросит PID).q— выход из утилиты.
Ответ 18+ 🔞
Давай разберём эту штуку, которая называется top. Представь, что твой сервер — это такой муравейник, а top — это супер-пупер стеклянный улей, через который ты видишь, какой муравей какую хрень тащит, кто прохлаждается, а кто уже сдох, но его ещё не выкинули. В общем, ебать мои старые костыли, это главный прибор для того, чтобы понять, что у тебя там творится.
Что она тебе показывает, эта мартышлюшка:
- Общая картина бардака: сколько система уже не выключалась (uptime), кто в неё сейчас тыкает, и самое главное — средняя нагрузка (load average). Если там цифры больше, чем ядер у процессора — это как в однокомнатную квартиру набилось овердохуища гостей, и все хотят в туалет. Терпения ноль ебать.
- Кто что жрёт: подробно, какого хуя процессор загружен — это пользовательские программы (
us), системные дела (sy) или он просто тупит в ожидании (wa). Плюс оперативка и своп. Если своп активно используется, а оперативки свободной — кот наплакал, это пиздец, чувак. Система начинает бздеть и тормозить. - Самый сок — список процессов. Вот они, твари, во всей красе:
PID— его личный номер, как в тюрьме.USER— чья это шалость.%CPU,%MEM— сколько он хавает процентов и памяти. Если какой-то один процесс жрёт 150% CPU — это хуй с горы, он сошёл с ума.COMMAND— как эта падла называется.
Вот смотри, как это выглядит в жизни:
top - 15:30:45 up 10 days, 1:23, 2 users, load average: 0.08, 0.03, 0.01
Tasks: 112 total, 1 running, 111 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.1 us, 0.5 sy, 0.0 ni, 97.4 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 7852.3 total, 3245.1 free, 2101.2 used, 2506.0 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used.
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1234 app-user 20 0 400768 98128 18708 S 6.2 1.2 2:30.67 php-fpm
5678 db-user 20 0 1254344 250112 45012 S 1.5 3.1 5:12.45 mysqld
Видишь? Всё спокойно. Проц (id) почти 98% без дела валяется, памяти свободной — завались. Только две службы (php-fpm и mysqld) себе потихоньку работают. Идеальная картина.
А вот чтобы этим управлять, есть клавиши — просто золото:
P— отсортировать, кто больше всех грузит процессор. Кто главный обжора — тот сверху.M— отсортировать по памяти. Кто оперативку хавает как не в себя — вылезай, хитрая жопа!k— это святое. Нажал, ввёл PID — и процессу кабзда. Только осторожно, вы ходите по охуенно тонкому льду, можно систему убить.q— просто выйти. Всё, надоело смотреть на этот цирк — нажал и свободен.
Вот и вся магия. Сидишь, смотришь, и если что-то пошло не так — сразу видно, кто виноват. Удобная, блядь, штука.