Команда top

Последнее обновление: 15.03.2024

Команда top предоставляет сводку по наиболее активным процессам.

eugene@Eugene:~$ top

top - 14:39:08 up  7:08,  2 users,  load average: 0.27, 0.30, 0.38
Tasks: 465 total,   1 running, 463 sleeping,   0 stopped,   1 zombie
%Cpu(s):  0.5 us,  0.2 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st 
MiB Mem :  64033.8 total,  57653.0 free,   3746.2 used,   3945.3 buff/cache     
MiB Swap:   8192.0 total,   8192.0 free,      0.0 used.  60287.6 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND     
   2652 eugene    20   0 6562944 336432 134984 S   8.9   0.5  22:49.14 gnome-shell 
   3858 eugene    20   0  642936  63296  43044 S   4.0   0.1   0:37.70 gnome-term+ 
  18658 eugene    20   0 1131.7g 271684 113012 S   1.0   0.4   0:34.14 chrome      
    734 root       0 -20       0      0      0 I   0.7   0.0   1:09.78 kworker/u4+ 
  12392 eugene    20   0   32.8g 343540 251296 S   0.7   0.5   4:59.16 chrome      
  12443 eugene    20   0   32.5g 132984 100116 S   0.7   0.2   1:40.38 chrome      
    302 root       0 -20       0      0      0 I   0.3   0.0   0:02.83 kworker/12+ 
    307 root       0 -20       0      0      0 I   0.3   0.0   0:02.34 kworker/11+ 
    471 root      19  -1   58608  23772  22812 S   0.3   0.0   0:06.74 systemd-jo+ 
   3006 eugene    20   0  420764  27912  17824 S   0.3   0.0   0:04.50 ibus-exten+ 
   4162 eugene    20   0 1124.1g 217492 135132 S   0.3   0.3   5:29.35 code        
   6748 root      20   0  546608 109288  32136 S   0.3   0.2   0:02.29 fwupd       
  12441 eugene    20   0   33.2g 222732 121464 S   0.3   0.3  10:40.91 chrome      
  18999 root      20   0       0      0      0 I   0.3   0.0   0:03.55 kworker/11+ 
  19030 root      20   0       0      0      0 I   0.3   0.0   0:00.67 kworker/1:+ 
      1 root      20   0  169800  12476   8636 S   0.0   0.0   0:02.05 systemd     
      2 root      20   0       0      0      0 S   0.0   0.0   0:00.01 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  
      5 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 slub_flush+ 
      6 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 netns       
      8 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/0:+ 
     11 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 mm_percpu_+ 
     12 root      20   0       0      0      0 I   0.0   0.0   0:00.00 rcu_tasks_+ 
     13 root      20   0       0      0      0 I   0.0   0.0   0:00.00 rcu_tasks_+ 
     14 root      20   0       0      0      0 I   0.0   0.0   0:00.00 rcu_tasks_+ 

Данная команда автоматически обновляет сводку каждые 5 минут.

Верхние 5 строчек показывают, что делает система. Детально рассмотрим их. Первая строка:

top - 14:39:08 up  7:08,  2 users,  load average: 0.27, 0.30, 0.38

Вначале отображается текущее время (в данном примере 14:39:08), за которым следует время работы системы (7 часов и 8 минут) и количество пользователей, подключенных к системе (в сводке выше 2 пользователя).

Далее идет параметр load average - три числа, которые показывают, насколько загружен компьютер относительно количества процессоров/ядер процессора на компьютере. Они дают среднее значение за последнюю минуту, последние 5 минут и последние 15 минут. Эти цифры дают представление о среднем количестве процессов, которые ожидали выполнения за указанный период.

Вторая строка показывает информацию об общем количестве задач и их текущем статусе:

Tasks: 465 total,   1 running, 463 sleeping,   0 stopped,   1 zombie

Здесь отображается общее количество задач - в моем случае 465. Далее отображается информация о состоянии этих задач:

  • running: это задачи, которые активно обслуживались во время последнего цикла опроса

  • sleeping: это задачи, которые не были активны в последнем цикле опроса.

  • stopped: это задачи, которые остановлены нажатием клавиши Ctrl-Z.

  • zombie: это задачи, для которых родительский процесс больше недоступен и, следовательно, их нельзя остановить или управлять ими.

Третья строка показывает информацию об использовании процессора:

%Cpu(s):  0.5 us,  0.2 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st 

Эта информация может дать представление о том, что именно делает ваш компьютер. В многопроцессорной системе отображается сводная информация для всех процессоров/ядер вместе. В частности, здесь перечислены следующие параметры:

  • us: объем нагрузки пользовательских процессов. Обычно это задачи, которые выполняются без привилегий root и не имеют прямого доступа к функциям ядра.

  • sy: объем нагрузки системных процессов. Обычно это задачи, запущенные с правами root и имеющие прямой доступ к функциям ядра.

  • ni: процессы, приоритет которых был настроен с помощью команды nice.

  • id: активность цикла ожидания - процент бездействия в системе

  • wa: количество времени, которое система провела в режиме ожидания. Это время, в течение которого система ожидала выполнения операций IO - ввода-вывода (например, операций по чтению или записи на диск). Если здесь высокое значение, это означает, что на компьютере много задач, связанных с вводом-выводом, и что хранилище компьютера не может эффективно справиться с ними. Среднее значение выше 30% может указывать на то, что канал ввода-вывода не работает должным образом.

  • hi: количество времени, которое компьютер потратил на обработку аппаратных прерываний. Это значение всегда должно быть низким. Если вы видите здесь высокое значение, это часто указывает на то, что используются плохо функционирующие драйверы.

  • si: количество времени, которое система потратила на обработку программных прерываний.

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

На четвертой строке идут показатели использования памяти:

MiB Mem :  64033.8 total,  57653.0 free,   3746.2 used,   3945.3 buff/cache 

Здесь нам отображается следующая информация:

  • total: общий объем памяти в мегабайтах, доступный в виде физической установленной оперативной памяти.

  • free: объем памяти, который в данный момент ни для чего не используется.

  • used: объем памяти, используемый в текущий момент программами и службами.

  • buff/cache: объем памяти, используемый для кэширования запросов на чтение и запись. Это память, которую ядро Linux может сделать доступной для других задач в случае необходимости.

Пятая строка показывает аналогичные индикаторы памяти, только для свопа:

MiB Swap:   8192.0 total,   8192.0 free,      0.0 used.  60287.6 avail Mem

Как видно, для свопа выделено 8 Гб и эти 8 Гб никак не используются. А последний показатель указывает на общий объем доступной памяти - этот объем состоит из объема, указанного как free, а также объема памяти, который может быть немедленно освобожден путем очистки ненужного буфера и кэш-памяти.

В нижней части вывода команды top отображается информация о процессах. Эта информация поделена на несколько столбцов, которые отображаются по умолчанию.

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND     
   2652 eugene    20   0 6562944 336432 134984 S   8.9   0.5  22:49.14 gnome-shell 
   3858 eugene    20   0  642936  63296  43044 S   4.0   0.1   0:37.70 gnome-term+ 
  18658 eugene    20   0 1131.7g 271684 113012 S   1.0   0.4   0:34.14 chrome      
    734 root       0 -20       0      0      0 I   0.7   0.0   1:09.78 kworker/u4+ 
...................................................................................

По умолчанию отображаются следующие столбцы:

  • PID: идентификатор процесса (PID). Каждый процесс имеет уникальный PID, который можно использовать для управления процессом.

  • USER: имя пользователя, запустившего процесс.

  • PR: приоритет процесса. Процессы с более высоким приоритетом (который выражается меньшим числом!) будут обслуживаться раньше процессов с более низким приоритетом. Если процесс с более высоким приоритетом требует процессорного времени, он всегда будет обработан раньше процесса с более низким приоритетом. Некоторые процессы имеют приоритет RT (реального времени), что означает, что они могут получать доступ к системным ресурсам в любое время.

  • NI: указывает, какой из процессов с одинаковыми приоритетами имеет больший приоритет. Более низкое значение означает более высокий приоритет

  • VIRT: общий объем памяти, выделенный процессу - запрошенная память. Данное значение не относится к какой-либо физически используемой памяти, а представляет зарезервированный диапазон адресов. Все процессы в Linux могут резервировать виртуальную память из общего адресного пространства в 32 ТБ

  • RES: объем резидентной памяти - памяти, которая выделена процессу и которая в настоящее время активно используется.

  • SHARE: обычно это библиотеки, используемые процессом, которые также используются другими процессами.

  • S: состояние процесса

  • %CPU: процент циклов процессора, использованных процессом. Стоит отметить, что именно по этому столбцу идет сортировка

  • %MEM: процент памяти, используемый процессом.

  • TIME: суммарное реальное время, в течение которого процесс использовал процессор в течение всего периода с момента его запуска.

  • COMMAND: команда, которая использовалась для запуска этого процесса.

Однако в реальности доступно больше столбцов, чем отображается по умолчанию. Если надо отобразить другие столбцы, то следует нажать клавишу F, находясь на верхнем экране. После этого консоль покажет список всех доступных столбцов, отмеченных *, которые в данный момент активны:

Fields Management for window 1:Def, whose current sort field is %CPU
   Navigate with Up/Dn, Right selects for move then <Enter> or Left commits,
   'd' or <Space> toggles display, 's' sets sort.  Use 'q' or <Esc> to end!

* PID      = Process  PGRP     = Process  OOMs     = OOMEM S  RSS      = Res Mem
* USER     = Effecti  TTY      = Control  ENVIRON  = Environ  PSS      = Proport
* PR       = Priorit  TPGID    = Tty Pro  vMj      = Major F  PSan     = Proport
* NI       = Nice Va  SID      = Session  vMn      = Minor F  PSfd     = Proport
* VIRT     = Virtual  nTH      = Number   USED     = Res+Swa  PSsh     = Proport
* RES      = Residen  P        = Last Us  nsIPC    = IPC nam  USS      = Unique 
* SHR      = Shared   TIME     = CPU Tim  nsMNT    = MNT nam  ioR      = I/O Byt
* S        = Process  SWAP     = Swapped  nsNET    = NET nam  ioRop    = I/O Rea
* %CPU     = CPU Usa  CODE     = Code Si  nsPID    = PID nam  ioW      = I/O Byt
* %MEM     = Memory   DATA     = Data+St  nsUSER   = USER na  ioWop    = I/O Wri
* TIME+    = CPU Tim  nMaj     = Major P  nsUTS    = UTS nam  AGID     = Autogro
* COMMAND  = Command  nMin     = Minor P  LXC      = LXC con  AGNI     = Autogro
  PPID     = Parent   nDRT     = Dirty P  RSan     = RES Ano  STARTED  = Start T
  UID      = Effecti  WCHAN    = Sleepin  RSfd     = RES Fil  ELAPSED  = Elapsed
  RUID     = Real Us  Flags    = Task Fl  RSlk     = RES Loc  %CUU     = CPU Uti
  RUSER    = Real Us  CGROUPS  = Control  RSsh     = RES Sha  %CUC     = Utiliza
  SUID     = Saved U  SUPGIDS  = Supp Gr  CGNAME   = Control  nsCGROUP = CGRP na
  SUSER    = Saved U  SUPGRPS  = Supp Gr  NU       = Last Us  nsTIME   = TIME na
  GID      = Group I  TGID     = Thread   LOGID    = Login U
  GROUP    = Group N  OOMa     = OOMEM A  EXE      = Executa

С помощью клавиш Вправо-Влево и Enter можно переключить включение столбца в сводку.

Для выхода из сводки процессов надо нажать q.

Команда top также может принимать дополнительные опции. Отмечу некоторые из них:

  • -d, --delay =SECS: устанавливает интервал обновления

  • -o, --sort-override =FIELD: устанавливает сортировку по полю FIELD

  • -p, --pid =PIDLIST: мониторинг только тех процессов, идентификаторы которых в PIDLIST

  • -U, --filter-any-user =USER: фильтрация процессов по пользователю USER

Например, фильтрация процессов по пользователю root:

top -U root
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850