Comando top - Linux
O comando top
programicio@Programicio:~$ 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 programicio 20 0 6562944 336432 134984 S 8.9 0.5 22:49.14 gnome-shell 3858 programicio 20 0 642936 63296 43044 S 4.0 0.1 0:37.70 gnome-term+ 18658 programicio 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 programicio 20 0 32.8g 343540 251296 S 0.7 0.5 4:59.16 chrome 12443 programicio 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 programicio 20 0 420764 27912 17824 S 0.3 0.0 0:04.50 ibus-exten+ 4162 programicio 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 programicio 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_+
Este comando atualiza automaticamente o resumo a cada 5 minutos.
As primeiras 5 linhas mostram o que o sistema está fazendo. Vamos analisar cada uma delas em detalhes. A primeira linha:
top - 14:39:08 up 7:08, 2 users, load average: 0.27, 0.30, 0.38
Primeiro, é exibido o horário atual (neste exemplo 14:39:08), seguido pelo tempo de atividade do sistema (7 horas e 8 minutos) e pelo número de usuários conectados ao sistema (no resumo acima, 2 usuários).
Em seguida, temos o parâmetro load average
A segunda linha mostra informações sobre o número total de tarefas e seu status atual:
Tasks: 465 total, 1 running, 463 sleeping, 0 stopped, 1 zombie
Aqui é exibido o número total de tarefas, neste caso, é 465. Em seguida, há informações sobre o estado dessas tarefas:
: são tarefas que estavam ativamente sendo processadas no último ciclo de verificação.running
: são tarefas que não estavam ativas no último ciclo de verificação.sleeping
: são tarefas que foram interrompidas ao pressionar a tecla Ctrl-Z.stopped
: são tarefas cujos processos pai não estão mais disponíveis e, portanto, não podem ser interrompidas ou gerenciadas.zombie
A terceira linha mostra informações sobre o uso do processador:
%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
Estas informações podem dar uma ideia do que o seu computador está fazendo. Em um sistema multiprocessador, são exibidas informações resumidas para todos os processadores/núcleos juntos. Em particular, são listados os seguintes parâmetros:
: carga dos processos de usuário. Geralmente, são tarefas executadas sem privilégios de root e sem acesso direto às funções do kernel.us
: carga dos processos do sistema. Normalmente, são tarefas executadas com privilégios de root e com acesso direto às funções do kernel.sy
: processos cuja prioridade foi ajustada com o comandoni
.nice
: atividade de ciclo de espera, ou seja, percentual de inatividade do sistema.id
: tempo que o sistema passou em modo de espera. Este é o tempo durante o qual o sistema aguardou a conclusão de operações de entrada e saída (por exemplo, leitura ou gravação no disco). Se esse valor for alto, significa que há muitas tarefas relacionadas a entrada e saída e que o armazenamento do computador não está conseguindo lidar com elas de forma eficiente. Um valor médio acima de 30% pode indicar que o canal de entrada e saída não está funcionando corretamente.wa
: tempo que o computador gastou processando interrupções de hardware. Este valor deve ser sempre baixo. Se você vir um valor alto aqui, geralmente isso indica que os drivers estão funcionando mal.hi
: tempo que o sistema gastou processando interrupções de software.si
: este parâmetro se aplica a ambientes que utilizam virtualização. Ele indica o tempo roubado do processador do computador atual por outras máquinas virtuais.st
A quarta linha exibe informações sobre o uso da memória:
MiB Mem : 64033.8 total, 57653.0 free, 3746.2 used, 3945.3 buff/cache
Aqui, são exibidas as seguintes informações:
: quantidade total de memória em megabytes, disponível na forma de memória RAM instalada.total
: quantidade de memória que não está sendo usada no momento.free
: quantidade de memória atualmente usada por programas e serviços.used
: quantidade de memória usada para cache de solicitações de leitura e gravação. Esta é a memória que o kernel do Linux pode liberar para outras tarefas, se necessário.buff/cache
A quinta linha mostra indicadores de uso da memória swap
MiB Swap: 8192.0 total, 8192.0 free, 0.0 used. 60287.6 avail Mem
Como visto, foram alocados 8 GB para swap, que não estão sendo usados. O último indicador mostra a quantidade total de memória disponível, que inclui a quantidade indicada como free, além da memória que pode ser liberada imediatamente ao limpar buffers e caches desnecessários.
Na parte inferior da saída do comando top
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2652 programicio 20 0 6562944 336432 134984 S 8.9 0.5 22:49.14 gnome-shell 3858 programicio 20 0 642936 63296 43044 S 4.0 0.1 0:37.70 gnome-term+ 18658 programicio 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+
Por padrão, são exibidas as seguintes colunas:
: Identificador do processo. Cada processo possui um PID único, que pode ser usado para gerenciar o processo.PID
: Nome do usuário que iniciou o processo.USER
: Prioridade do processo. Processos com maior prioridade (menor número) serão atendidos antes dos de menor prioridade. Alguns processos têm prioridade RT (tempo real), o que significa que podem acessar os recursos do sistema a qualquer momento.PR
: Indica qual processo com prioridades iguais tem maior prioridade. Valores mais baixos significam maior prioridade.NI
: Quantidade total de memória virtual alocada ao processo. Este valor não se refere à memória física usada, mas sim ao intervalo de endereços reservado. Todos os processos no Linux podem reservar memória virtual a partir de um espaço de endereço de 32 TB.VIRT
: Quantidade de memória residente, que está atualmente sendo usada ativamente pelo processo.RES
: Normalmente são bibliotecas usadas pelo processo e por outros processos.SHR
: Estado do processo.S
: Percentual de ciclos de CPU usados pelo processo. A classificação é feita por esta coluna.%CPU
: Percentual de memória usado pelo processo.%MEM
: Tempo real total durante o qual o processo utilizou o CPU desde o seu início.TIME
: Comando usado para iniciar este processo.COMMAND
Entretanto, existem mais colunas disponíveis do que as exibidas por padrão. Para exibir outras colunas, pressione a tecla 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
Com as teclas de navegação (direita, esquerda) e Enter, você pode alternar a inclusão da coluna no resumo.
Para sair do resumo de processos, pressione q
O comando top
: Define o intervalo de atualização.-d, --delay=SECS
: Define a classificação pela coluna FIELD.-o, --sort-override=FIELD
: Monitora apenas os processos cujos identificadores estão em PIDLIST.-p, --pid=PIDLIST
: Filtra processos pelo usuário USER.-U, --filter-any-user=USER
Por exemplo, para filtrar processos pelo usuário root:
top -U root