Как проверить процессы Кали Линукс.
В статье описываются команды, с помощью которых можно посмотреть запущенные процессы Кали Линукс в текущем сеансе, проверить потребление процессами оперативной памяти, нагрузку на процессор, рассмотрим сортировку процессов по степени приоритета и т.д.
Введение. Самая простая из команд.
Как и другие операционные системы, Кали является мультипроцессовой системой. А это значит, что на фоне запущенных в системе процессов существует своеобразный программный инструмент, позволяющий правильно распределять нагрузку оптимально в отношении исполняемых Кали задач: он решает какой процесс будет использоваться процессором и в какой промежуток времени. Если программа не отвечает или пользователь желает перебросить силы процессора на определённую задачу, без этих команд не обойтись.
Всё начинается с загрузки. Всякий раз по включении Кали вы видите список проверяемых служб, процессов и скриптов, которые запускаются вместе с системой. Большинство из них и есть сама система: скрипты инициализации, программы-демоны (это не ужасающий термин, а вполне устоявшееся определение родом из UNIX систем, означающий фоновый, скрытый от глаз пользователя процесс)… Со многими из них работать вообще никогда не придётся. Другое дело родительские процессы, которые позволяют запускать и контролировать процессы дочерние — запускаемые и контролируемые родительскими. С ними иногда приходится работать напрямую. Терминал нам в помощь.
Каждому из процессов в текущем сеансе присвоен свой персональный идентификатор или PID. С ним можно работать также как с названием процесса. Начнём с простого в порядке повышения информативности — наберём в окне терминала:
Только что запущенное окно отобразит текущие процессы, связанные с текущим терминалом (выходом на конкретное задание или устройство). Это всегда bash и ps. Терминал говорит вам, что вы сейчас смотрите на текстовую командную оболочку Bourne-Again Shell (bash — оболочка, предложенная господами Бурном и Эгейном) и хотите увидеть список процессов ps, которые к данному терминалу присоединены. Окно терминала разбито на несколько столбцов, где:
- PID — номер процесса (не по порядку)
- TTY — среда текстового ввода/вывода (вообще-то это сокращение от teletype, но в этимологию линукс-команд лучше не вдаваться; хотя это многое порой объясняет). Сейчас под аббревиатурой TTY скрывается само окно терминала.
- PTS/X — pseudo terminal slave — ведомый псевдо терминал. Разница между TTY и PTS состоит в типе соединения с системой или компьютером. Первое — это устройства, которые соединены с компьютером напрямую: мышь, клавиатура, другое оборудование. PTS — это то, что связано с компьютером через сетевой протокол. Но и у тех и у других задача одна — подключаться к шеллу вашей Кали с целью вводить команду на управление компьютером под началом ОС. С каждым новым открытым окном терминала и те и другие значения будут меняться:
Теперь взглянем на все процессы Кали Линукс. Наберём:
Вот это я понимаю список. Как видно, описание процессов разбавил ещё один столбец, да и, ко всему прочему, добавились новые символы. Разберёмся.
С PID нам всё ясно. Однако почти все процессы под TTY заполнены знаками вопроса ?. Это означает, что ни один из этих процессов не связан ни с одним из терминалов сеанса Кали. Новый столбец STAT указывает на статус или состояние процесса. R — запущен, S — спит, T — остановлен, l — мультипоточный и т.д. Не все дополнительные флаги вам придётся увидеть, однако для полноты статьи какие процессы Кали принимают вид я справочно приведу (в алфавитном порядке латиницы):
- D — постоянно спящий режим (обычно для устройств ввода-вывода)
- R — запущенный или готовый к сиюминутному запуску процессов
- S — спящий процесс (в ожидании какого-то события для остановки или завершения)
- T — остановленный процесс
- X — заблокированный процесс
- Z — «зомби-процесс» (остановленный принудительно, но по некоторым причинам системой не возобновлённый)
Ко всему прочему к этим флагам могут быть доставлены дополнительные флаги:
Но и это ещё не всё. Если наберёте команду:
процессы Кали Линукс предстанут в ещё подробном описании. Здесь добавились столбцы использования процессом мощностей процессора (CPU) и оперативной памяти (MEM), время запуска каждого из процессов START, объём виртуальной памяти VSZ и, наконец, RSS — абсолютное значение объёма памяти, отнимаемой у RAM.
Процессы Кали: «Диспетчер задач» Линукс
Нет, это не тот, что в Windows, однако структура подачи данных напомнит виндовозам Диспетчер задач. Наберите команду:
и процессы Кали будут разбиты по другой структуре. Столбцы будут содержать известную вам информацию в том порядке, сколько ресурсов потребляют:
Однако характерной чертой скрипта можно назвать именно шапку вывода терминала, в которой показан абзац с не менее важными параметрами:
- top — время запуска задачи
- up — время работы Кали в текущем сеансе
- user — количество пользователей, которые пользуеются сеансом
- load average — среднее время ожидания процессом (-ами) на запуск (десятые и сотые доли означают, что процессор не загружен)
- Tasks: running (sleeping, stopped и т.д.) — исполняемые задачи и их текущий статус; запущены ли, остановлены и .т.д.
- Cpu — загрузка процессора (с описанием, сколько в общей доле тратится на пользовательские процессы us, системные sy, простой процессора id и другие)
- KiB Mem — объёмы общей, задействованной и простаиваемой памяти
- KiB Swap — объём виртуальной (на манер таковой в Windows) свеп-памяти, отбираемой при нехватке у HDD.
Ну что… В любой момент для любой из команд вы можете воспользоваться справкой или же покинуть окно через quit.
Как просмотреть нагрузку на процессор в Linux
В Linux потребление ресурсов CPU, с сортировкой по наибольшей загрузке, можно посмотреть при помощи двух команд: ps и top.
Важный нюанс: Значение в столбце «CPU» в обоих командах считается от загрузки одного ядра процессора. Таким образом сумма процентов на многоядерных машинах будет больше 100%. К примеру для четырехядерного процессора суммарный процент потребления всех процессов не может превышать 400%.
Рассмотрим каждую из команд подробней.
Команда ps
Для запуска введите в консоли ОС команду:
$ ps -aux --sort -rss USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND user 30799 51.2 8.1 2733764 285136 ? Rl 09:25 5:30 /usr/lib/chromium-browser/chromium-browser --ppapi-flash-path=/usr/lib/pepperflashplugin-nonfree/libpepflashplayer.so --ppap user 2800 0.1 6.6 9972812 234184 ? Sl окт31 1:26 /usr/bin/plasmashell --shut-up user 31308 2.4 5.3 1767496 188672 ? Sl 09:26 0:13 /usr/lib/chromium-browser/chromium-browser --type=renderer --enable-pinch --field-trial-handle=7228759356551874141,180166971 user 31011 3.9 5.3 1793296 186812 ? Sl 09:25 0:25 /usr/lib/chromium-browser/chromium-browser --type=renderer --enable-pinch --field-trial-handle=7228759356551874141,180166971 user 31369 5.5 4.8 1378568 171328 ? Sl 09:28 0:23 /usr/lib/libreoffice/program/soffice.bin --writer --splash-pipe=5 user 14442 12.1 4.2 1050808 150148 ? Sl 01:19 60:04 /usr/lib/x86_64-linux-gnu/libexec/kscreenlocker_greet --graceTime 5000 --ksldfd 26 user 31111 0.9 3.8 1708496 134564 ? Sl 09:25 0:06 /usr/lib/chromium-browser/chromium-browser --type=renderer --enable-pinch --field-trial-handle=7228759356551874141,180166971 user 1225 0.0 3.7 3639148 132092 ? Sl окт31 1:00 /usr/bin/plasmashell --shut-up user 31078 0.6 3.7 1724480 130724 ? Sl 09:25 0:03 /usr/lib/chromium-browser/chromium-browser --type=renderer --enable-pinch --field-trial-handle=7228759356551874141,180166971 user 30986 0.7 3.3 1717860 117660 ? Sl 09:25 0:04 /usr/lib/chromium-browser/chromium-browser --type=renderer --enable-pinch --field-trial-handle=7228759356551874141,180166971 user 1216 1.7 3.2 3271220 113736 ? Sl окт31 20:36 kwin_x11
Важными столбцами являются:
- USER Пользователь, от имени которого работает процесс
- PID Идентификатор процесса
- %CPU Процент загрузки ядра
Согласно данному выводу можно понять, что экземпляр программы dd с PID=31712 практически полностью использует одно ядро процессора.
Команда top
Также загрузку процессора можно посмотреть в интерактивном режиме при помощи команды top. Для запуска введите в консоли ОС команду:
top - 15:13:56 up 8 days, 5:18, 4 users, load average: 0,01, 0,04, 0,05 Tasks: 124 total, 1 running, 123 sleeping, 0 stopped, 0 zombie %Cpu(s): 0,0 us, 0,0 sy, 0,0 ni, 99,9 id, 0,1 wa, 0,0 hi, 0,0 si, 0,0 st KiB Mem: 2060916 total, 1714780 used, 346136 free, 184580 buffers KiB Swap: 901116 total, 0 used, 901116 free, 999472 cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 22684 root 20 0 24768 1476 1016 R 0,3 0,1 0:00.01 top 1 root 20 0 15444 756 612 S 0,0 0,0 0:08.79 init 2 root 20 0 0 0 0 S 0,0 0,0 0:00.00 kthreadd 3 root 20 0 0 0 0 S 0,0 0,0 1:08.03 ksoftirqd/0 5 root 20 0 0 0 0 S 0,0 0,0 0:00.00 kworker/u:0 6 root rt 0 0 0 0 S 0,0 0,0 0:00.77 migration/0 7 root rt 0 0 0 0 S 0,0 0,0 0:02.81 watchdog/0 8 root rt 0 0 0 0 S 0,0 0,0 0:00.77 migration/1 10 root 20 0 0 0 0 S 0,0 0,0 0:04.40 ksoftirqd/1 12 root rt 0 0 0 0 S 0,0 0,0 0:02.40 watchdog/1 13 root rt 0 0 0 0 S 0,0 0,0 0:01.50 migration/2 15 root 20 0 0 0 0 S 0,0 0,0 0:04.33 ksoftirqd/2 16 root rt 0 0 0 0 S 0,0 0,0 0:02.26 watchdog/2 17 root rt 0 0 0 0 S 0,0 0,0 0:00.49 migration/3 19 root 20 0 0 0 0 S 0,0 0,0 0:03.73 ksoftirqd/3 20 root rt 0 0 0 0 S 0,0 0,0 0:02.21 watchdog/3 21 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 cpuset 22 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 khelper 23 root 20 0 0 0 0 S 0,0 0,0 0:00.00 kdevtmpfs 24 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 netns 25 root 20 0 0 0 0 S 0,0 0,0 0:01.84 sync_supers 26 root 20 0 0 0 0 S 0,0 0,0 0:00.05 bdi-default 27 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 kintegrityd 28 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 kblockd 30 root 20 0 0 0 0 S 0,0 0,0 0:08.20 kworker/2:1 31 root 20 0 0 0 0 S 0,0 0,0 0:01.98 kworker/3:1 32 root 20 0 0 0 0 S 0,0 0,0 0:00.32 khungtaskd 33 root 20 0 0 0 0 S 0,0 0,0 0:00.00 kswapd0 34 root 25 5 0 0 0 S 0,0 0,0 0:00.00 ksmd 35 root 39 19 0 0 0 S 0,0 0,0 0:00.00 khugepaged 36 root 20 0 0 0 0 S 0,0 0,0 0:00.00 fsnotify_mark 37 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 crypto 103 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 ata_sff 111 root 20 0 0 0 0 S 0,0 0,0 0:00.00 scsi_eh_0 114 root 20 0 0 0 0 S 0,0 0,0 0:00.01 scsi_eh_1 115 root 20 0 0 0 0 S 0,0 0,0 0:15.02 kworker/u:1 119 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 mpt_poll_0 137 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 mpt/0 165 root 20 0 0 0 0 S 0,0 0,0 0:00.00 scsi_eh_2 169 root 20 0 0 0 0 S 0,0 0,0 0:11.68 kworker/3:2 177 root 20 0 0 0 0 S 0,0 0,0 1:37.28 kworker/1:2 207 root 20 0 0 0 0 S 0,0 0,0 0:07.77 flush-8:0 213 root 20 0 0 0 0 S 0,0 0,0 0:21.32 jbd2/sda1-8 214 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 ext4-dio-unwrit 355 root 20 0 24140 1468 816 S 0,0 0,1 0:00.06 udevd 502 root 20 0 24100 1096 468 S 0,0 0,1 0:00.00 udevd 503 root 20 0 24100 1028 408 S 0,0 0,0 0:00.00 udevd 527 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 kpsmoused 528 root 20 0 0 0 0 S 0,0 0,0 0:04.36 kworker/2:2 555 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 ttm_swap 1842 root 20 0 152m 8928 4548 S 0,0 0,4 8:15.13 vmtoolsd 1885 root 20 0 60288 9396 6444 S 0,0 0,5 0:00.04 VGAuthService 1979 root 20 0 199m 5016 4128 S 0,0 0,2 3:19.79 ManagementAgent
Важными столбцами являются:
- USER Пользователь, от имени которого работает процесс
- PID Идентификатор процесса
- %CPU Процент загрузки ядра
Согласно данному выводу видно, что два процесса браузера Chromium используют по 40% возможностей одного из ядер процессора.