Gravando o uso da CPU pelo núcleo e uso da RAM / CPU por processo em um arquivo de log no OS X

2

Estou escrevendo um script que grava memória e uso da CPU em um arquivo de log, a cada hora em um cronjob. O arquivo de log será algo como isto:

"/n====CPU usage by core===="

Core0: 59.05% used

Core1: 57.68% used

"/n====RAM/CPU usage by process===="

PID | RAM used (KB) | %CPU used | COMM | USER

01 | 00003352 | 0.15% | /sbin/launchd | root
11 | 00009220 | 0.65% | /usr/libexec/Use | root
12 | 00005504 | 7.81% | /usr/libexec/kex | root

Ele provavelmente usará um comando para uso da CPU pelo core e outro comando para uso da RAM / CPU pelo processo, mas eu poderia usar um comando para ambos ou mais de dois comandos totais.

Os seguintes comandos mostram alguns ou todos os dados de que preciso, mas infelizmente não são soluções:

  • top não possui o comando -b no OS X, diferente do Linux. Isso significa que é auto-atualização e, portanto, é inadequado para gravar em um arquivo de log. Comando para obter uso% por CPU / núcleo?

  • htop é um programa interativo inadequado para gravar em um arquivo de log. E mostra o uso da CPU pelo núcleo como um gráfico de barras ASCII de qualquer maneira. Comando para obter uso% por CPU / núcleo?

  • ps pode subestimar o uso de memória, por exemplo, quando páginas são compartilhados ou quando vários aplicativos usam o mesmo dinamicamente bibliotecas vinculadas. Caso contrário, usaria ps -eo "pid rss pmem pcpu comm user" .

  • mpstat não está no OS X e não está disponível no homebrew.

Ter meu usuário instalar o homebrew a partir da linha de comando é aceitável, mas tê-los construindo a partir do código-fonte e fazendo com que eles adicionem manualmente os comandos ao bash não.

Além disso, toda a temporização precisa ser feita no cronjob, por isso não posso usar comandos de atualização automática e eliminá-los após o primeiro ciclo.

Obrigado pela sua ajuda. :)

    
por JaneGoodall 09.12.2013 / 03:31

0 respostas