Gerenciando processos no OS X com os parâmetros do comando top

O leitor Márcio T. G. perguntou via contato do BR-Mac:

Augusto, uso Linux desde 2008 e nele me acostumei a inspecionar os processos em execução usando o comando top sempre que percebia que o desempenho do computador não estava normal. No fim do ano passado migrei para um Mac mini com ajuda das suas dicas no BR-Mac e tudo vai bem, mas fico intrigado com o funcionamento do top nele, que não ordena os processos pelo uso da CPU e não tem os mesmos comandos para matar ou mudar a prioridade de processos. Estou fazendo algo errado?

Não, Márcio, está tudo certo, mas o top que você tem no Mac não é o mesmo que o do Linux.

Trata-se de uma situação comum: usuários que chegaram ao OS X após adquirir experiência em outro sistema UNIX ou no Linux podem aproveitar o que aprenderam e eventualmente recorrer ao Terminal (e a comandos como kill, killall, renice e top) quando precisam interferir manualmente no gerenciamento de processos.

Os mesmos comandos de gerenciamento de processos mencionados acima (embora em implementações diferentes, dependendo de qual o sistema que você usou antes) estão disponíveis no Terminal do OS X e alguns deles operam de maneiras bastante similares: o renice permite aumentar (com parâmetros negativos) ou diminuir (com parâmetros positivos) a prioridade dada a determinado processo, enquanto o kill e o killall permitem enviar um sinal (que pode ser o KILL ou encerramento forçado, TERM ou encerramento gerenciado, HUP ou reinício e outros que você encontra digitando man kill) a um processo qualquer.

Peço desculpas a quem não está familiarizado com o assunto, mas hoje vou me dirigir diretamente a quem já tem essa experiência, sem oferecer o detalhamento que poderia ser útil aos recém-chegados (mas nada impede de que voltemos ao assunto futuramente com uma abordagem mais suave, se houver demanda).

Aproveitando melhor o top

O top, que também está presente no Terminal do OS X, é um caso à parte de diferenças mais profundas: quem o conheceu bem enquanto usava Linux está acostumado a vê-lo listar por default os processos em ordem de seu uso de CPU, e a pressionar "M" para vê-los em ordem do uso de memória - duas das ordenações mais frequentemente necessárias a quem está investigando a razão de um desktop estar lento.

Já no OS X um número bem maior de colunas de dados é exibido, a ordenação default dos processos é por um campo menos relevante para as tarefas comuns (o seu identificador numérico ou PID), e você pode pressionar "M" o dia inteiro e não verá os processos serem ordenados pela sua ocupação de memória.

Mas fazer o top do Mac ordenar sua listagem por qualquer campo desejado é simples, e existem até várias alternativas, interativas ou pelos parâmetros de chamada. Digitando man top você verá os detalhes de todas, mas eis as minhas formas preferidas de chamar o top no OS X (eu até defini um alias para cada uma delas no .bashrc):

  • top -o cpu ☞ ordena pelo uso de CPU
  • top -o vsize ☞ apesar do nome, a documentação diz que ordena pelo uso total de memória (física + virtual)
  • top -o rsize ☞ ordena pelo uso de memória física

O comando top que eu uso diariamente é mais amplo (e também foi definido como um alias), e limita as colunas que são exibidas pelo comando às que me interessam diretamente, facilitando a inspeção visual:

top -o cpu -stats pid,user,state,command,cpu,vsize,rsize,time

e ele produz uma saída como a da janela abaixo:

O top do OS X também tem alguns comandos interativos, como o (que permite definir uma nova ordenação para a listagem) e S maiúsculo (que permite enviar um sinal para um processo, de forma análoga ao comando kill). Pressione ? durante a execução do top para ver uma lista destes comandos e seus parâmetros.

E se você pretende aproveitar bem a ferramenta para tomar decisões de administração do seu desktop, vale a pena dar uma boa estudada no man top para entender melhor o significado de cada campo do cabeçalho e da lista de processos.

Comentar

Comentários arquivados

Artigos recentes: