Uso de recursos (% CPU) para determinado comando no OS X

0

O comando time -v gera % de utilização da CPU para um determinado comando no Linux. Como faço isso no OS X? A diferença do Linux / OS X é ilustrada aqui . Gostaria de medir a utilização de vários núcleos durante o período total de execução de um programa de execução curta, portanto, top provavelmente não funcionaria, pois mede / calcula médias em determinados pontos no tempo.

    
por user12719 05.01.2016 / 19:59

2 respostas

0

Parece que não há alternativa real ao comando gnu time . Então, no final eu instalei apenas isso. No OS X gnu-time pode ser instalado com homebrew: brew install gnu-time . Posteriormente, a utilização da CPU para um comando específico pode ser medida usando gtime <command> . Um teste mostra que meu programa está sendo executado simultaneamente: 1.73user 0.13system 0:01.61elapsed 115%CPU .

    
por 11.01.2016 / 18:22
1

Você pode instalar o pacote sysstat e usar o comando sar. ( link )

Uso de CPU de TODAS as CPUs (sar -u)

Isso fornece o uso cumulativo da CPU em tempo real de todas as CPUs. “1 3 ″ informa para cada 1 segundo um total de 3 vezes. O mais provável é que você se concentre no último campo "% ocioso" para ver o carregamento da CPU.

$ sar -u 1 3
 Linux 2.6.18-194.el5PAE (dev-db)        03/26/2011      _i686_  (8 CPU)

  01:27:32 PM       CPU     %user     %nice   %system   %iowait       %steal     %idle
  01:27:33 PM       all      0.00      0.00      0.00      0.00      0.00    100.00
  01:27:34 PM       all      0.25      0.00      0.25      0.00      0.00     99.50
  01:27:35 PM       all      0.75      0.00      0.25      0.00      0.00     99.00
  Average:          all      0.33      0.00      0.17      0.00      0.00       99.50

A seguir, algumas variações:

sar -u Displays CPU usage for the current day that was collected until that point.
sar -u 1 3 Displays real time CPU usage every 1 second for 3 times.
sar -u ALL Same as “sar -u” but displays additional fields.
sar -u ALL 1 3 Same as “sar -u 1 3″ but displays additional fields.
sar -u -f /var/log/sa/sa10 Displays CPU usage for the 10day of the month from the sa10 file.

Uso da CPU de CPU ou núcleo individual (sar -P)

Se você tem 4 Núcleos na máquina e gostaria de ver o que os núcleos individuais estão fazendo, faça o seguinte.

“- P ALL” indica que deve exibir estatísticas para TODOS os Núcleos individuais.

No exemplo a seguir, em "CPU", a coluna 0, 1, 2 e 3 indica os números centrais da CPU correspondentes.

  $ sar -P ALL 1 1
  Linux 2.6.18-194.el5PAE (dev-db)        03/26/2011      _i686_  (8 CPU)

  01:34:12 PM       CPU     %user     %nice   %system   %iowait    %steal     %idle
  01:34:13 PM       all     11.69      0.00      4.71      0.69      0.00     82.90
  01:34:13 PM         0     35.00      0.00      6.00      0.00      0.00     59.00
  01:34:13 PM         1     22.00      0.00      5.00      0.00      0.00     73.00
  01:34:13 PM         2      3.00      0.00      1.00      0.00      0.00     96.00
  01:34:13 PM         3      0.00      0.00      0.00      0.00      0.00    100.00

“- P 1 ″ indica que deve exibir estatísticas apenas para o segundo núcleo. (Observe que o número do núcleo começa em 0).

  $ sar -P 1 1 1
  Linux 2.6.18-194.el5PAE (dev-db)        03/26/2011      _i686_  (8 CPU)

  01:36:25 PM       CPU     %user     %nice   %system   %iowait    %steal     %idle
 01:36:26 PM         1      8.08      0.00      2.02      1.01      0.00     88.89

A seguir, algumas variações:

sar -P ALL Displays CPU usage broken down by all cores for the current day.
sar -P ALL 1 3 Displays real time CPU usage for ALL cores every 1 second for 3 times (broken down by all cores).
sar -P 1 Displays CPU usage for core number 1 for the current day.
sar -P 1 1 3 Displays real time CPU usage for core number 1, every 1 second for 3 times.
sar -P ALL -f /var/log/sa/sa10 Displays CPU usage broken down by all cores for the 10day day of the month from sa10 file.
    
por 05.01.2016 / 20:45