O comando top no Linux exibe os processos em execução no sistema. Uma das ferramentas mais importantes para um administrador do sistema. É amplamente utilizado para monitorar a carga do sistema. Nesse artigo é explorado o comando top em detalhes, pois ele é um comando interativo; ou seja, muitos outros comandos estão disponíveis quando ele está executando. Sendo assim, domine o comando top!
I – SAÍDA DO COMANDO TOP
top - 23:18:09 up 1:45, 1 user, load average: 0.76, 0.78, 0.76 Tasks: 192 total, 1 running, 190 sleeping, 0 stopped, 1 zombie Cpu(s): 15.4%us, 5.7%sy, 0.0%ni, 78.8%id, 0.2%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 3058052k total, 2100524k used, 957528k free, 168696k buffers Swap: 3481788k total, 0k used, 3481788k free, 1099720k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3187 ricardo 20 0 1129m 403m 43m S 14 13.5 28:23.04 firefox 1238 root 20 0 98840 27m 8876 S 6 0.9 4:45.38 Xorg 2398 ricardo 20 0 429m 76m 29m S 4 2.6 3:01.05 compiz 3352 ricardo 20 0 246m 53m 22m S 2 1.8 2:20.39 plugin-containe 2431 ricardo 20 0 196m 25m 15m S 2 0.9 0:03.11 python 2552 ricardo 20 0 166m 11m 8456 S 1 0.4 0:04.21 bamfdaemon 2955 root 20 0 0 0 0 S 1 0.0 0:04.06 kworker/0:3 2370 ricardo 20 0 6836 3352 632 S 1 0.1 0:14.33 dbus-daemon
Primeiramente, é preciso entender a saída do comando (mostrada acima). Ela exibe uma série de informações sobre o sistema em funcionamento. Então, é preciso ficar ciente das seções mostradas:
1 – Tempo de atividade e média de carga do sistema (Uptime and Load Averages)
top - 23:18:09 up 1:45, 1 user, load average: 0.76, 0.78, 0.76
Na parte superior do comando top é apresentada a saída similar ao comando uptime.
* O tempo atual
* O tempo que seu sistema está funcionando
* Número de usuários autenticados no sistema no momento
* Média de carga de 5, 10 e 15 minutos respectivamente.
2 – Tarefas (Tasks)
Tasks: 192 total, 1 running, 190 sleeping, 0 stopped, 1 zombie
A segunda linha mostra resumo das tarefas ou processos. Os processos podem ser em diferentes estados. Ela mostra o número total de processos. Destes, os processos podem estar executando (running), dormindo (sleeping), parado (stopped) ou modo zumbi (zombie)
3 – Estados da CPU (CPU States)
Cpu(s): 15.4%us, 5.7%sy, 0.0%ni, 78.8%id, 0.2%wa, 0.0%hi, 0.0%si, 0.0%st
Em seguida é apresentado o estado da CPU. O significado dos diferentes tempos de CPU são:
* us, usuário (user): tempo de CPU na execução dos processos de usuário
* Sy, sistema (sytem): tempo de CPU na execução de processos do kernel
* Id, ocioso (idle): tempo de CPU em inatividade
* Wa, tempo para I/O: tempo de CPU esperando a conclusão de operação de entrada/saída no disco (I/O)
* hi: CPU tempo servindo interrupções de hardware
* Si: tempo de CPU servindo interrupções de software
4 – Uso da memória (Memory Usage)
Mem: 3058052k total, 2100524k used, 957528k free, 168696k buffers Swap: 3481788k total, 0k used, 3481788k free, 1099720k cached
Estes mostram o uso de memória, um pouco do comando “free”. A primeira linha refere-se a memória física e a segunda linha a memória virtual (swap). A memória física é apresentada como: memória total disponível, memória usada, memória livre e memória usada para buffers. Da mesma forma, a swap: total, usada, espaço de troca livre e em cache. Todas em unidade Kilobyte
5 – Colunas
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3187 ricardo RT 0 1129m 403m 43m S 14 13.5 28:23.04 firefox 1238 root 20 0 98840 27m 8876 S 6 0.9 4:45.38 Xorg 2398 ricardo 20 0 429m 76m 29m S 4 2.6 3:01.05 compiz
Nesta seção, os processos são apresentados em colunas. As diferentes colunas representam diferentes propriedades exibidas abaixo:
PID (Identificador do processo)
A identificação do processo (identificador único)
USUÁRIO (USER)
Usuário proprietário do processo.
PR (Prioridade)
A prioridade de agendamento do processo. Alguns valores neste campo são ‘ RT ‘ . Isso significa que o processo está sendo executado em tempo real (Real Time).
NI
Os valores mais baixos significam maior prioridade.
VIRT
A quantidade de memória virtual usada pelo processo.
RES
O tamanho da memória usada. Residente na memória física e não na área de troca (swap).
SHR (Share – compartilhada)
SHR é a memória compartilhada usada pelo processo.
S (State – estado)
Este é o estado do processo . Ele pode ter um dos seguintes valores :
D – ininterrupto
R – executando
S – dormindo
T – rastreado ou parado
Z – zumbi
% CPU
É a porcentagem de tempo de CPU que a tarefa tem usado desde a última atualização.
% MEM
Percentagem de memória física disponível usada pelo processo.
TEMPO +
O tempo total de CPU que a tarefa tem usado desde o início (precisão de centésimo de segundo)
COMANDO
Descrição do comando que foi utilizado para iniciar o processo.
II – OPÇÕES DO COMANDO
1 – Resultado enxuto
2 – Tempo de atualização (a cada 2 segundos)
3 – Somente processos executando
4 – Limite de iteração
5 – Especificando o usuário
III – COMANDOS INTERATIVOS
1 – ‘h’: Help
Help for Interactive Commands - procps version 3.2.8 Window 1:Def: Cumulative mode Off. System: Delay 3.0 secs; Secure mode Off. Z,B Global: 'Z' change color mappings; 'B' disable/enable bold l,t,m Toggle Summaries: 'l' load avg; 't' task/cpu stats; 'm' mem info 1,I Toggle SMP view: '1' single/separate states; 'I' Irix/Solaris mode f,o . Fields/Columns: 'f' add or remove; 'o' change display order F or O . Select sort field . Move sort field: '' next col right R,H . Toggle: 'R' normal/reverse sort; 'H' show threads c,i,S . Toggle: 'c' cmd name/line; 'i' idle tasks; 'S' cumulative time x,y . Toggle highlights: 'x' sort field; 'y' running tasks z,b . Toggle: 'z' color/mono; 'b' bold/reverse (only if 'x' or 'y') u . Show specific user only n or # . Set maximum tasks displayed
2 – ‘ENTER’: Atualizar a amostragem
3 – ‘d’: Informe o tempo de atualização
top - 00:25:27 up 2:52, 1 user, load average: 0.70, 0.65, 0.62 Tasks: 190 total, 2 running, 187 sleeping, 0 stopped, 1 zombie Cpu(s): 13.5%us, 3.9%sy, 4.3%ni, 76.8%id, 1.4%wa, 0.0%hi, 0.1%si, 0.0%st Mem: 3058052k total, 2106460k used, 951592k free, 177340k buffers Swap: 3481788k total, 0k used, 3481788k free, 1086764k cached Change delay from 3.0 to: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3187 ricardo 22 2 1216m 418m 43m S 20 14.0 50:26.41 firefox
4 – ‘f’: Controle quais valores devem ser exibidos
Current Fields: AEHIOQTWKNMbcdfgjplrsuvyzX for window 1:Def Toggle fields via field letter, type any other key to return * A: PID = Process Id 0x00100000 PF_USEDFPU (thru 2.4) * E: USER = User Name * H: PR = Priority * I: NI = Nice value * O: VIRT = Virtual Image (kb) * Q: RES = Resident size (kb) * T: SHR = Shared Mem size (kb) * W: S = Process Status * K: %CPU = CPU usage * N: %MEM = Memory usage (RES) * M: TIME+ = CPU Time, hundredths b: PPID = Parent Process Pid c: RUSER = Real user name d: UID = User Id f: GROUP = Group Name g: TTY = Controlling Tty j: P = Last used cpu (SMP)
legal!!
Excelente post, muito útil para o dia a dia. Obrigado!
é possível colocar em um script o uso da CPU em uma condição(if..). por exemplo: se atingir tal quantidade de memoria aparece uma mensagem no terminal?? obrigado.