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 dotop
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 CPUtop -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