Иногда возникают ситуации, в которых должны определить список процессов, которые потребляют больше ресурсов ЦП в системе.
Я считаю, что есть только два способа проверить это.
Это можно сделать с помощью команды 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 -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 -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
еще htop можно поставить и не страдать
у него с командой top схожий синтаксис