run_rebalance_domains
#!/usr/bin/env bpftrace
BEGIN {
printf("Sampling all CPU stacks every ~10ms (99Hz)...\n");
}
// 周期性采样所有 CPU 的调用栈(每秒 99 次)
profile:hz:99 {
$cpu = cpu;
$pid = pid;
$comm = comm;
// 存储当前 CPU 的进程信息和调用栈
@pid[$cpu] = $pid;
@comm[$cpu] = $comm;
@stack[$cpu] = kstack;
}
// 每 1 秒打印采样结果
interval:s:1 {
time("%H:%M:%S\n");
printf("CPU stacks:\n");
// 遍历所有 CPU 的采样数据
print(@pid);
print(@comm);
print(@stack);
// 清除映射,避免累积
clear(@pid);
clear(@comm);
clear(@stack);
}
// 程序退出时清理
END {
clear(@pid);
clear(@comm);
clear(@stack);
}
💬 评论