🐧 Как найти процессы с наиболее высокой загрузкой на процессор в Linux — Information Security Squad
🐧 Как найти процессы с наиболее высокой загрузкой на процессор в Linux

Иногда возникают ситуации, в которых должны определить список процессов, которые потребляют больше ресурсов ЦП в системе.

Я считаю, что есть только два способа проверить это.

Это можно сделать с помощью команды top и команды ps.

Я хотел бы рекомендовал использовать скорее top, нежели ps.

Но оба метода будут давать одинаковые результаты, поэтому вы можете выбрать тот, который вам нравится больше.

Обе эти опции широко используются администраторами Linux.

1) Как найти процесс с высокой загрузкой на процессор в Linux с помощью команды top

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

Команда top обеспечивает динамическое представление в реальном времени запущенных процессов в системе Linux.

Она отображает сводную информацию о системе, список процессов, в настоящее время управляемых ядром Linux.

Она отображает различную системную информацию, такую как использование процессора, использование памяти, память подкачки, количество запущенных процессов, время работы системы, загрузка системы, размер буфера, размер кэша, PID процесса и т. д.

По умолчанию она сортирует верхние выходные данные с использованием ЦП и обновляет данные каждые 5 секунд.

Если вы хотите получить четкое представление о выводе команды top для дальнейшего анализа, это лучший способ запустить команду top в пакетном режиме.

Кроме того, вы должны понимать вывод команды top, чтобы исправить проблему производительности в системе.

# top -c -b | head -50

top - 12:12:52 up 57 days, 21:58, 3 users, load average: 1.50, 1.76, 1.86
Tasks: 306 total, 1 running, 216 sleeping, 0 stopped, 0 zombie
%Cpu(s): 12.7 us, 4.2 sy, 0.0 ni, 81.7 id, 0.0 wa, 0.0 hi, 1.4 si, 0.0 st
KiB Mem : 16400812 total, 262904 free, 3166168 used, 12971740 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 13559292 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
28494 root 20 0 1515256 1.3g 52140 S 43.8 8.1 7618:26 kube-apiserver --advertise-address=10.2.67.201 --allow-privileged=true --anonymous-aut+
13148 root 20 0 162192 4520 3848 R 12.5 0.0 0:00.03 top -c -b
17334 root 20 0 1544992 132556 58240 S 6.2 0.8 4272:14 /usr/local/bin/kubelet --logtostderr=true --v=2 --node-ip=10.2.67.201 --hostname-overr+
28432 root 20 0 10.2g 162668 84168 S 6.2 1.0 2099:34 /usr/local/bin/etcd
1 root 20 0 129568 9180 5252 S 0.0 0.1 152:29.90 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
2 root 20 0 0 0 0 S 0.0 0.0 0:01.77 [kthreadd]
3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 [rcu_gp]
4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 [rcu_par_gp]
6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 [kworker/0:0H-kb]
8 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 [mm_percpu_wq]
9 root 20 0 0 0 0 S 0.0 0.0 6:30.07 [ksoftirqd/0]
10 root 20 0 0 0 0 I 0.0 0.0 131:34.14 [rcu_sched]
11 root rt 0 0 0 0 S 0.0 0.0 0:37.83 [migration/0]
13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [cpuhp/0]
14 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [cpuhp/1]
15 root rt 0 0 0 0 S 0.0 0.0 0:36.70 [migration/1]
16 root 20 0 0 0 0 S 0.0 0.0 4:50.86 [ksoftirqd/1]
18 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 [kworker/1:0H-kb]
19 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [cpuhp/2]
20 root rt 0 0 0 0 S 0.0 0.0 0:36.68 [migration/2]
21 root 20 0 0 0 0 S 0.0 0.0 5:33.95 [ksoftirqd/2]
23 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 [kworker/2:0H-kb]
24 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [cpuhp/3]
25 root rt 0 0 0 0 S 0.0 0.0 0:35.79 [migration/3]
26 root 20 0 0 0 0 S 0.0 0.0 6:43.56 [ksoftirqd/3]
28 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 [kworker/3:0H-kb]
29 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [kdevtmpfs]
30 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 [netns]
31 root 20 0 0 0 0 S 0.0 0.0 0:13.96 [kauditd]
32 root 20 0 0 0 0 S 0.0 0.0 0:12.74 [khungtaskd]
33 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [oom_reaper]
34 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 [writeback]
35 root 20 0 0 0 0 S 0.0 0.0 0:00.47 [kcompactd0]
36 root 25 5 0 0 0 S 0.0 0.0 0:00.00 [ksmd]
37 root 39 19 0 0 0 S 0.0 0.0 0:20.81 [khugepaged]
130 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 [kintegrityd]
131 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 [kblockd]
132 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 [blkcg_punt_bio]
133 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 [tpm_dev_wq]
134 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 [md]
135 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 [edac-poller]
136 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 [devfreq_wq]
137 root rt 0 0 0 0 S 0.0 0.0 0:00.00 [watchdogd]
Детали вышеупомянутой команды:
  • top : это команда
  • -b : Пакетный режим.
  • head -50: Показать первые 50 строк в выходных данных.
  • PID : Уникальный идентификатор процесса.
  • USER : Владелец процесса.
  • PR : приоритет процесса.
  • NI : NICE значение процесса.
  • VIRT :Сколько виртуальной памяти используется процессом.
  • RES :Сколько физической памяти используется процессом.
  • SHR : сколько общей памяти используется процессом.
  • S : Указывает на состояние процесса: S = сон R = работает Z = зомби.
  • %CPU : Процент процессора, используемого процессом.
  • %MEM : Процент оперативной памяти, используемой процессом.
  • TIME+ : Как долго работает процесс.
  • COMMAND : Наименование процесса.
Если вы хотите увидеть полный путь к команде вместо ее имени, запустите следующий формат команды top:
# top -b | head -50
top - 12:16:41 up 57 days, 22:02, 3 users, load average: 1.98, 1.77, 1.83
Tasks: 309 total, 1 running, 216 sleeping, 0 stopped, 0 zombie
%Cpu(s): 3.0 us, 4.5 sy, 0.0 ni, 92.4 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 16400812 total, 257304 free, 3169012 used, 12974496 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 13556452 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
18002 root 20 0 0 0 0 I 6.2 0.0 0:00.03 kworker/2:3-mm_
18955 root 20 0 162180 4496 3820 R 6.2 0.0 0:00.01 top
26826 root 20 0 639508 524456 57648 S 6.2 3.2 1346:12 kube-controller
28494 root 20 0 1515256 1.3g 52140 S 6.2 8.1 7619:00 kube-apiserver
1 root 20 0 129568 9180 5252 S 0.0 0.1 152:30.38 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:01.77 kthreadd
3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp
6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H-kb
8 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq
9 root 20 0 0 0 0 S 0.0 0.0 6:30.09 ksoftirqd/0
10 root 20 0 0 0 0 I 0.0 0.0 131:34.56 rcu_sched
11 root rt 0 0 0 0 S 0.0 0.0 0:37.83 migration/0
13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/0
14 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/1
15 root rt 0 0 0 0 S 0.0 0.0 0:36.70 migration/1
16 root 20 0 0 0 0 S 0.0 0.0 4:50.88 ksoftirqd/1
18 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/1:0H-kb
19 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/2
20 root rt 0 0 0 0 S 0.0 0.0 0:36.68 migration/2
21 root 20 0 0 0 0 S 0.0 0.0 5:33.97 ksoftirqd/2
23 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/2:0H-kb
24 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/3
25 root rt 0 0 0 0 S 0.0 0.0 0:35.79 migration/3
26 root 20 0 0 0 0 S 0.0 0.0 6:43.59 ksoftirqd/3
28 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/3:0H-kb
29 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs
30 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 netns
31 root 20 0 0 0 0 S 0.0 0.0 0:13.96 kauditd
32 root 20 0 0 0 0 S 0.0 0.0 0:12.74 khungtaskd
33 root 20 0 0 0 0 S 0.0 0.0 0:00.00 oom_reaper
34 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 writeback
35 root 20 0 0 0 0 S 0.0 0.0 0:00.47 kcompactd0
36 root 25 5 0 0 0 S 0.0 0.0 0:00.00 ksmd
37 root 39 19 0 0 0 S 0.0 0.0 0:20.81 khugepaged
130 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kintegrityd
131 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kblockd
132 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 blkcg_punt_bio
133 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 tpm_dev_wq
134 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 md
135 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 edac-poller
136 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 devfreq_wq
137 root rt 0 0 0 0 S 0.0 0.0 0:00.00 watchdogd

2) Как найти процесс с высокой загрузкой процессора в Linux с помощью команды ps

ps обозначает processes status, она отображает информацию об активных / запущенных процессах в системе.

Она предоставляет снимок текущих процессов вместе с подробной информацией, такой как имя пользователя, идентификатор пользователя, использование процессора, использование памяти, дата начала процесса и имя команды времени и т. д.

# ps -eo pid,ppid,%mem,%cpu,cmd --sort=-%cpu | head

  PID  PPID %MEM %CPU CMD
18527  1714  4.2 40.3 /usr/lib/firefox/firefox -contentproc -childID 18 -isForBrowser -prefsLen 10002 -prefMapSize 213431 -parentBuildID 20191031132559 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 1714 true tab
 1714  1152  5.6  8.0 /usr/lib/firefox/firefox --new-window
18324  1714  4.9  6.3 /usr/lib/firefox/firefox -contentproc -childID 16 -isForBrowser -prefsLen 10002 -prefMapSize 213431 -parentBuildID 20191031132559 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 1714 true tab
 3286  1714  2.0  5.1 /usr/lib/firefox/firefox -contentproc -childID 14 -isForBrowser -prefsLen 8078 -prefMapSize 213431 -parentBuildID 20191031132559 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 1714 true tab
 1783  1714  3.0  4.5 /usr/lib/firefox/firefox -contentproc -childID 1 -isForBrowser -prefsLen 1 -prefMapSize 213431 -parentBuildID 20191031132559 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 1714 true tab
 1227  1152  2.3  2.5 /usr/bin/gnome-shell
 1170  1168  3.5  2.2 /usr/lib/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -nolisten tcp -background none -noreset -keeptty -verbose 3
16865  1714  2.5  2.1 /usr/lib/firefox/firefox -contentproc -childID 15 -isForBrowser -prefsLen 10002 -prefMapSize 213431 -parentBuildID 20191031132559 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 1714 true tab
 2179  1714  2.7  1.8 /usr/lib/firefox/firefox -contentproc -childID 6 -isForBrowser -prefsLen 7821 -prefMapSize 213431 -parentBuildID 20191031132559 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 1714 true tab
Если вы хотите видеть только имя команды вместо абсолютного пути к команде, используйте формат команды ps ниже.
# ps -eo pid,ppid,%mem,%cpu,comm --sort=-%cpu | head

  PID  PPID %MEM %CPU COMMAND
18527  1714  4.1 40.4 Web Content
 1714  1152  5.7  8.0 firefox
18324  1714  4.9  6.3 Web Content
 3286  1714  2.0  5.1 Web Content
 1783  1714  3.0  4.5 Web Content
 1227  1152  2.3  2.5 gnome-shell
 1170  1168  3.5  2.2 Xorg
16865  1714  2.4  2.1 Web Content
 2179  1714  2.7  1.8 Web Content

2 комментария на “🐧 Как найти процессы с наиболее высокой загрузкой на процессор в Linux

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

5e7fa976b0640d40