Como posso acompanhar e registrar CPU e uso de memória em um Mac?

6

Eu sei que posso usar o Activity Monitor (assim como uma enorme quantidade de aplicativos de terceiros) para monitorar o uso de RAM e CPU no meu Mac. No entanto, eu quero capturar um log em um período de tempo para que eu possa comparar o uso entre os processos sem ter que fazer capturas de tela, etc. Algo como um console, como este:

Process A (5:22 - 5:32)

5:22:01: 2.2% CPU, 5 Threads, 111.1MB Real Mem  
5:22:03: 2.1% CPU, 4 Threads, 90.4MB Real Mem  
...

Como posso conseguir isso?

    
por RSH 10.04.2013 / 23:26

3 respostas

7

Isso pode não ser bem , mas tente isso:

sar -o ~/output.sar 10 10 

Isso reúne 10 conjuntos de métricas em intervalos de 10 segundos. Você pode então extrair informações úteis do arquivo de saída (mesmo enquanto ele ainda estiver em execução), por exemplo, você obterá a atividade do disco para o intervalo amostrado:

sar -d -f ~/output.sar

Faça um man sar para descobrir que outras opções existem.

Editar:

sar não faz memória, por isso você obterá a memória livre do sistema em intervalos de dez segundos:

vm_stat 10 | awk 'NR>2 {gsub("K","000");print ($1+$4)/256000}'

Você pode redirecionar isso para um arquivo.

Se você precisar de mais informações, por favor, pergunte.

    
por 11.04.2013 / 00:39
2

Você pode registrar a CPU e o uso de memória dos processos, embora não da contagem de threads, com o programa Python Syrupy .

Syrupy is a Python script that regularly takes snapshots of the memory and CPU load of one or more running processes, so as to dynamically build up a profile of their usage of system resources.

Syrupy works by one of two modes. In the first (default) mode, it monitors the resource usage of a process resulting from the execution of a user-specified command (which can be any arbitrarily-complex combination of programs and arguments that can be invoked from a shell terminal). In the second mode, Syrupy monitors the resource usage of external running processes that meet user-specified criteria: a PID (Process IDentifier) number or a command string matching a regular expression pattern.

In either case, the monitoring of the system resource usage is based on repeated calls to the system command ps.

Para o seu caso de uso, registrando todos os processos em execução, acho que esse comando funcionaria:

syrupy.py --poll-command='.*'
    
por 08.12.2014 / 09:48
0

Você pode usar top e enviar dados em awk ou grep para ler as informações específicas necessárias.

Confira aqui; link

top é, na verdade, a ferramenta subjacente em que o Activity Monitor é desenvolvido.

    
por 11.04.2013 / 01:31