Como medir a frequência média da CPU no linux?

1

Estou tentando medir a frequência média da CPU em uma CPU habilitada para DVFS para intervalo, a maneira óbvia de periodicamente amostragem / proc / cpuinfo tem variantes muito grandes. O driver cpufreq-stats me deu alguma esperança, por exemplo.

cat /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state 
2600000 118148
2000000 8562
1600000 11041
1200000 3428602    # lots of ticks is idle ticks

mas infelizmente ele é misturado com tiques ociosos (consulte o patch "Não contabilizar o tempo ocioso durante o rastreamento time_in_state "). Durante o tempo inativo, é provável que a CPU retorne à frequência mais baixa, distorcendo assim a distribuição de frequência de maneira significativa.

O patch acima utiliza a função account_idle_tick para remover a inatividade Tiques de estática, mas parece que só funciona para o kernel xen. Existe uma maneira alternativa de medir a frequência média da CPU?

    
por IZhen 09.09.2010 / 13:23

2 respostas

1

A nova versão de desenvolvimento Sysstat 9.1.6 inclui uma nova opção (-m FREQ) para relatar freqüência média da cpu, por exemplo

$ sar -m FREQ -P ALL 0
Linux 2.6.30.10-105.2.23.fc11.i686.PAE (palmer.localdomain)     10/23/2010     _i686_        (2 CPU)

02:36:09 PM     CPU   wghMHz
02:36:09 PM     all   1042.23
02:36:09 PM       0   1039.43
02:36:09 PM       1   1166.65

O peso médio é o tempo gasto naquela frequência, por exemplo, em um intervalo de relatório de 10 segundos, primeiros 8 segundos em que a frequência está em 1GHz, os últimos 2 segundos em 2GHz e, em seguida, a frequência média de 1,2 GHz

    
por 14.12.2010 / 05:07
0

talvez sar seja o que você está procurando. A partir do release 9.0.0 de sysstat , sar pode coletar a frequência da cpu. De man sar :

-m     Report  power management statistics.  Note that these statistics
       depend on sadc option "-S POWER" to be collected.  The following
       value is displayed:

       MHz
         CPU clock frequency in MHz.
    
por 09.09.2010 / 15:11