Performance 使用SystemTap计算CPU利用率

Performance 使用SystemTap计算CPU利用率,performance,profiling,cpu,systemtap,utilization,Performance,Profiling,Cpu,Systemtap,Utilization,我想使用SystemTap获得CPU利用率(%us,%sy,%id,%wa)。我编写了一个脚本,它使用timer.profile探测并计算处理器时钟: #! /usr/bin/env stap probe timer.profile { # probe perf.sw.cpu_clock { if (!user_mode()) { if (pid() == 0) { iticks <<< 1 } else { kticks <

我想使用SystemTap获得CPU利用率(
%us
%sy
%id
%wa
)。我编写了一个脚本,它使用
timer.profile
探测并计算处理器时钟:

#! /usr/bin/env stap

probe timer.profile {
# probe perf.sw.cpu_clock {
  if (!user_mode()) {
    if (pid() == 0) {
      iticks <<< 1
    } else {
      kticks <<< 1
    }
  } else {
    uticks <<< 1
  }
  ticks <<< 1  
}

global uticks, kticks, ticks, iticks

probe timer.s(1), end {
  allticks = @count(ticks)

  # printf("us: %d, sy: %d, id: %d, tot: %d\n",
  #        @count(uticks), @count(kticks), @count(iticks), allticks);
  printf("us: %d, sy: %d, id: %d\n",
         @count(uticks)*100/allticks, 
         @count(kticks)*100/allticks,
         @count(iticks)*100/allticks);

  delete uticks
  delete kticks
  delete iticks
  delete ticks
}
#/usr/bin/env stap
探针定时器配置文件{
#探测器性能软件cpu\U时钟{
如果(!user_mode()){
如果(pid()==0){
它