Linux 如何使用perf在多处理器计算机中获取每个cpu消息?
我的工作是测量多处理器计算机中的每个节点,例如使用perf的4个核。包括缓存未命中、LLC加载、LLC加载未命中、LLC存储、LLC存储未命中等等,我只得到总的统计数据Linux 如何使用perf在多处理器计算机中获取每个cpu消息?,linux,multiprocessing,perf,Linux,Multiprocessing,Perf,我的工作是测量多处理器计算机中的每个节点,例如使用perf的4个核。包括缓存未命中、LLC加载、LLC加载未命中、LLC存储、LLC存储未命中等等,我只得到总的统计数据 有办法区分它们吗?根据您的perf版本,您可以使用-a和-C开关的组合 发件人: 演示机只有两个CPU,但我们可以限制为CPU 1 perf stat -B -e cycles:u,instructions:u -a -C 1 sleep 5 Performance counter stats for 'slee
有办法区分它们吗?根据您的perf版本,您可以使用-a和-C开关的组合 发件人: 演示机只有两个CPU,但我们可以限制为CPU 1
perf stat -B -e cycles:u,instructions:u -a -C 1 sleep 5
Performance counter stats for 'sleep 5':
301,141,166 cycles
225,595,284 instructions # 0.749 IPC
5.002125198 seconds time elapsed
因此,如果您有4个处理器,您可以:
perf stat -B -e cycles:u,instructions:u -a -C 0 sleep 5
perf stat -B -e cycles:u,instructions:u -a -C 1 sleep 5
perf stat -B -e cycles:u,instructions:u -a -C 2 sleep 5
perf stat -B -e cycles:u,instructions:u -a -C 3 sleep 5
是的,但是当我在多个CPU中用一个命令运行我的程序时,我怎么知道每个CPU的消息呢。以您的方式,我只是在CPU1中获取数据。为了澄清我的问题,我想知道的是特定进程的统计数据是基于每个cpu的。那么“perf stat-a-a”和-a“disable cpu count aggregation”如何呢?我得到32个cpu数据,但我只有4个。你怎么看?我认为运行4个perf实例(每个处理器一个实例)和同时运行4个处理器一个实例是不同的情况。哦,我发现我的计算机有32个CPU,对不起~