К основному контенту

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# top -c -b | head -50top - 12:12:52 up 57 days, 21:58, 3 users, load average: 1.50, 1.76, 1.86Tasks: 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 stKiB Mem : 16400812 total, 262904 free, 3166168 used, 12971740 buff/cacheKiB Swap: 0 total, 0 free, 0 used. 13559292 avail MemPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND28494 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 -b17334 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/etcd1 root 20 0 129568 9180 5252 S 0.0 0.1 152:29.90 /usr/lib/systemd/systemd --switched-root --system --deserialize 222 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 -50top - 12:16:41 up 57 days, 22:02, 3 users, load average: 1.98, 1.77, 1.83Tasks: 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 stKiB Mem : 16400812 total, 257304 free, 3169012 used, 12974496 buff/cacheKiB Swap: 0 total, 0 free, 0 used. 13556452 avail MemPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND18002 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 top26826 root 20 0 639508 524456 57648 S 6.2 3.2 1346:12 kube-controller28494 root 20 0 1515256 1.3g 52140 S 6.2 8.1 7619:00 kube-apiserver1 root 20 0 129568 9180 5252 S 0.0 0.1 152:30.38 systemd2 root 20 0 0 0 0 S 0.0 0.0 0:01.77 kthreadd3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H-kb8 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq9 root 20 0 0 0 0 S 0.0 0.0 6:30.09 ksoftirqd/010 root 20 0 0 0 0 I 0.0 0.0 131:34.56 rcu_sched11 root rt 0 0 0 0 S 0.0 0.0 0:37.83 migration/013 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/014 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/115 root rt 0 0 0 0 S 0.0 0.0 0:36.70 migration/116 root 20 0 0 0 0 S 0.0 0.0 4:50.88 ksoftirqd/118 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/1:0H-kb19 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/220 root rt 0 0 0 0 S 0.0 0.0 0:36.68 migration/221 root 20 0 0 0 0 S 0.0 0.0 5:33.97 ksoftirqd/223 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/2:0H-kb24 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/325 root rt 0 0 0 0 S 0.0 0.0 0:35.79 migration/326 root 20 0 0 0 0 S 0.0 0.0 6:43.59 ksoftirqd/328 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/3:0H-kb29 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs30 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 netns31 root 20 0 0 0 0 S 0.0 0.0 0:13.96 kauditd32 root 20 0 0 0 0 S 0.0 0.0 0:12.74 khungtaskd33 root 20 0 0 0 0 S 0.0 0.0 0:00.00 oom_reaper34 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 writeback35 root 20 0 0 0 0 S 0.0 0.0 0:00.47 kcompactd036 root 25 5 0 0 0 S 0.0 0.0 0:00.00 ksmd37 root 39 19 0 0 0 S 0.0 0.0 0:20.81 khugepaged130 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kintegrityd131 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kblockd132 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 blkcg_punt_bio133 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 tpm_dev_wq134 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 md135 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 edac-poller136 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 devfreq_wq137 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 | headPIDPPID %MEM %CPU CMD1852717144.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 tab171411525.68.0 /usr/lib/firefox/firefox --new-window1832417144.96.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 tab328617142.05.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 tab178317143.04.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 tab122711522.32.5 /usr/bin/gnome-shell117011683.52.2 /usr/lib/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -nolisten tcp -background none -noreset -keeptty -verbose 31686517142.52.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 tab217917142.71.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 | headPIDPPID %MEM %CPU COMMAND1852717144.1 40.4 Web Content171411525.78.0 firefox1832417144.96.3 Web Content328617142.05.1 Web Content178317143.04.5 Web Content122711522.32.5 gnome-shell117011683.52.2 Xorg1686517142.42.1 Web Content217917142.71.8 Web Content

Комментарии


Дистанционная компьтерная помощь, удаленная компьютерная помощь онлайн.

Популярные сообщения из этого блога

Лучшие плагины для OBS Studio

Open Broadcast Software или OBS - это свободное программное обеспечение с открытым исходным кодом для стриминга аудио и видео данных в сеть интернет. Программа полностью кроссплатформенная и может работать в Windows, Linux или MacOS. Это отличная альтернатива для таких программ, как Wirecast и XSplit. OBS использует для вещания стандартный протокол обмена сообщениями в реальном времени, а поэтому может транслировать данные в любой сервис, поддерживающий это, например, Yotube. Несмотря на широкие возможности OBS, программа поддерживает еще и множество плагинов. В этой статье мы рассмотрим лучшие плагины для OBS Studio, которые вы можете использовать. Содержание статьи: Лучшие плагины OBS Studio 1. Browser Source Plugin 2. Video Source Plugin 3. Simple Scene Switcher 4. DirectShow Audio Source 5. CLR Browser Source 6. OBS Remote 7. AMD Advanced Media Framework Encoder 8. Text Source Plugin Выводы Лучшие плагины OBS Studio Чтобы найти плагины OBS Studio для Video пользователям пр…

Лучшие аналоги Paint для Linux

Когда я работал в Windows, я часто использовал стандартную программу редактора изображений Windows - Paint. Не всегда нужен очень и многофункциональный инструмент вроде Photoshop или Gimp. Иногда, чтобы подправить ту или иную картинку, дорисовать на ней несколько фигур или вставить текст достаточно простого, легкого в освоении графического редактора вроде Paint. В Linux таких программ довольно много. В этой инструкции мы рассмотрим лучшие аналоги Paint для Linux. В этот список не будут включены такие программы, как Gimp и Krita, ведь это полнофункциональные графические редакторы, векторные редакторы, такие как Inkscape мы тоже рассматривать не будем. А теперь перейдем к списку. Содержание статьи: KolourPaint MyPaint Gnome Paint XPaint Pinta mtPaint GPaint Rassam-paint Выводы KolourPaint На первом месте в списке аналогов Piant для Linux будет KoloutPaint. Это стандартный графический редактор для окружения рабочего стола KDE. Он поддерживает множество форматов изображений PNG, J…

Подключение OneDrive в Linux

OneDrive (Ранее известный как SkyDrive) это популярное облачное хранилище файлов от Майкрософт. Сейчас OneDrive бесплатно предоставляет 7 гигабайт пространства новым пользователям. Как вы знаете OneDrive хорошо интегрирован с другими продуктами компании  Microsoft. В OneDrive Также есть официальный клиент который автоматически загружает ваши видео и фотографии с камеры в облако. Но к сожалению этот клиент недоступен для операционных систем семейства Linux. Но не все так плохо. Сообщество открытого программного обеспечения уже нашло решение. Это opedrive-d от Boilermaker. Запустившись как демон программа автоматически синхронизирует локальную папку с облаком OneDrive. Содержание статьи: Установка Onedrive-d в Linux Настройка Синхронизация локальной папки с OneDrive Установка Onedrive-d в Linux Несмотря на то что onedrive-d разрабатывается для Ubuntu/Debian, CentOs/Fedora/RHEL поддерживается тоже хорошо. Для установки достаточно набрать несколько команд: $ git clone https://gith…