Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2153048
  • 博文数量: 333
  • 博客积分: 10161
  • 博客等级: 上将
  • 技术积分: 5238
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-19 08:59
文章分类

全部博文(333)

文章存档

2017年(10)

2014年(2)

2013年(57)

2012年(64)

2011年(76)

2010年(84)

2009年(3)

2008年(37)

分类: LINUX

2011-12-09 16:56:17

NAME
       turbostat - Report processor frequency and idle statistics

SYNOPSIS
       turbostat [-v] [-M MSR#] command
       turbostat [-v] [-M MSR#] [-i interval_sec]

DESCRIPTION
       turbostat   reports  processor topology, frequency and idle 

power state
       statistics on modern X86 processors.   Either  command  is  

forked  and
       statistics  are  printed upon its completion, or statistics 

are printed
       periodically.

       turbostat requires that the processor supports an 

"invariant" TSC, plus
       the  APERF and MPERF MSRs.  turbostat  will report idle cpu 

power state
       residency on processors that  additionally  support  C-state 

 residency
       counters.

   Options
       The -v option increases verbosity.

       The  -M  MSR#  option dumps the specified MSR, in addition 

to the usual
       frequency and idle statistics.

       The  -i  interval_sec  option  prints  statistics  every   

interval_sec
       seconds.  The default is 5 seconds.

       The  command  parameter  forks  command and upon its exit, 

displays the
       statistics gathered since it was forked.

FIELD DESCRIPTIONS
       pkg processor package number.
       core processor core number.
       CPU Linux CPU (logical processor) number.
       %c0 percent of the interval that the CPU retired 

instructions.
       GHz average clock rate while the CPU was in c0 state.
       TSC average GHz that the TSC ran during the entire interval.
       %c1, %c3, %c6 show the percentage residency in hardware core 

idle states.
       %pc3, %pc6 percentage residency in hardware package idle 

states.

EXAMPLE
       Without any parameters, turbostat prints out counters ever  

5  seconds.
       (override  interval  with  "-i  sec"  option,  or specify a 

command for
       turbostat to fork).

       The first row of statistics reflect the average for the 

entire  system.
       Subsequent rows show per-CPU statistics.

       [root@x980]# ./turbostat
       core CPU   %c0   GHz  TSC   %c1    %c3    %c6   %pc3   %pc6
                 0.04 1.62 3.38   0.11   0.00  99.85   0.00  95.07
         0   0   0.04 1.62 3.38   0.06   0.00  99.90   0.00  95.07
         0   6   0.02 1.62 3.38   0.08   0.00  99.90   0.00  95.07
         1   2   0.10 1.62 3.38   0.29   0.00  99.61   0.00  95.07
         1   8   0.11 1.62 3.38   0.28   0.00  99.61   0.00  95.07
         2   4   0.01 1.62 3.38   0.01   0.00  99.98   0.00  95.07
         2  10   0.01 1.61 3.38   0.02   0.00  99.98   0.00  95.07
         8   1   0.07 1.62 3.38   0.15   0.00  99.78   0.00  95.07
         8   7   0.03 1.62 3.38   0.19   0.00  99.78   0.00  95.07
         9   3   0.01 1.62 3.38   0.02   0.00  99.98   0.00  95.07
         9   9   0.01 1.62 3.38   0.02   0.00  99.98   0.00  95.07
        10   5   0.01 1.62 3.38   0.13   0.00  99.86   0.00  95.07
        10  11   0.08 1.62 3.38   0.05   0.00  99.86   0.00  95.07

VERBOSE EXAMPLE
       The "-v" option adds verbosity to the output:

       GenuineIntel 11 CPUID levels; family:model:stepping 0x6:2c:2 

(6:44:2)
       12 * 133 = 1600 MHz max efficiency
       25 * 133 = 3333 MHz TSC frequency
       26 * 133 = 3467 MHz max turbo 4 active cores
       26 * 133 = 3467 MHz max turbo 3 active cores
       27 * 133 = 3600 MHz max turbo 2 active cores
       27 * 133 = 3600 MHz max turbo 1 active cores

       The  max  efficiency  frequency,  a.k.a.  Low  Frequency  

Mode,  is the
       frequency available at the minimum package voltage.  The TSC 

 frequency
       is  the  nominal  maximum frequency of the processor if 

turbo-mode were
       not available.  This  frequency  should  be  sustainable  on 

 all  CPUs
       indefinitely, given nominal power and cooling.  The 

remaining rows show
       what maximum turbo frequency is possible depending  on  the  

number  of
       idle  cores.   Note  that  this  information  is  not  

available on all
       processors.

FORK EXAMPLE
       If turbostat is invoked with a command, it will fork that  

command  and
       output  the  statistics  gathered  when  the command exits.  

eg. Here a
       cycle soaker is run on 1 CPU (see %c0) for a few seconds 

until ^C while
       the other CPUs are mostly idle:

       [root@x980 lenb]# ./turbostat cat /dev/zero > /dev/null

       ^Ccore CPU   %c0   GHz  TSC   %c1    %c3    %c6   %pc3   

%pc6
                  8.49 3.63 3.38  16.23   0.66  74.63   0.00   0.00
          0   0   1.22 3.62 3.38  32.18   0.00  66.60   0.00   0.00
          0   6   0.40 3.61 3.38  33.00   0.00  66.60   0.00   0.00
          1   2   0.11 3.14 3.38   0.19   3.95  95.75   0.00   0.00
          1   8   0.05 2.88 3.38   0.25   3.95  95.75   0.00   0.00
          2   4   0.00 3.13 3.38   0.02   0.00  99.98   0.00   0.00
          2  10   0.00 3.09 3.38   0.02   0.00  99.98   0.00   0.00
          8   1   0.04 3.50 3.38  14.43   0.00  85.54   0.00   0.00
          8   7   0.03 2.98 3.38  14.43   0.00  85.54   0.00   0.00
          9   3   0.00 3.16 3.38 100.00   0.00   0.00   0.00   0.00
          9   9  99.93 3.63 3.38   0.06   0.00   0.00   0.00   0.00
         10   5   0.01 2.82 3.38   0.08   0.00  99.91   0.00   0.00
         10  11   0.02 3.36 3.38   0.06   0.00  99.91   0.00   0.00
       6.950866 sec

       Above  the  cycle  soaker  drives cpu9 up 3.6 Ghz turbo 

limit while the
       other processors are generally in various states of idle.

       Note that cpu3 is an HT sibling sharing core9 with cpu9, and 

thus it is
       unable to get to an idle state deeper than c1 while cpu9 is 

busy.

       Note  that  turbostat reports average GHz of 3.61, while the 

arithmetic
       average of the GHz column above is 3.24.  This is a  

weighted  average,
       where  the  weight  is  %c0.   ie.  it is the total number 

of un-halted
       cycles elapsed per time divided by the number of CPUs.

NOTES
       turbostat must be run as root.

       turbostat reads hardware counters, but doesn't write them.  

So it  will
       not  interfere  with  the  OS  or  other  programs,  

including multiple
       invocations of itself.

       turbostat may work poorly on  Linux-2.6.20  through  2.6.29, 

 as  acpi-
       cpufreq periodically cleared the APERF and MPERF in those 

kernels.

       The APERF, MPERF MSRs are defined to count non-halted 

cycles.  Although
       it is not guaranteed by the architecture, turbostat assumes  

that  they
       count at TSC rate, which is true on all processors tested to 

date.

REFERENCES
       "Intel(R)  Turbo  Boost Technology in Intel(R) Coretm 

Microarchitecture
       (Nehalem)                       Based                       

Processors"
       


       "Intel(R) 64 and IA-32 Architectures Software Developer's 

Manual Volume
       3B:               System               Programming           

    Guide"
      

FILES
       /dev/cpu/*/msr

SEE ALSO
       msr(4), vmstat(8)

AUTHORS
       Written by Len Brown
阅读(8971) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~