在Linux上,如何判断机器有多少个核心处于活动状态?

在Linux上,如何判断机器有多少个核心处于活动状态?

在 Linux 上,如何判断机器有多少个核心处于活动状态?我假设对此的测试也适用于 Android。我需要知道是否有多个核心处于活动状态。想知道通过让进程创建多个线程来测试这一点。线程是否可以查询它在哪个处理器上?这样就可以判断在重负载下是否会使用多个核心。不确定我是否走在正确的轨道上。

答案1

您可以使用top列出每个核心的利用率。如有必要,请按 1 将 CPU 行拆分为每个核心的单独行。

您还可以添加一列来显示每个进程最后使用的核心。按 f 键调出字段列表,然后按 j 键激活“P”列。然后按空格键返回实时视图。

答案2

ps有一个字段用来psr告诉您作业正在哪个处理器上运行。

因此你可以使用类似如下的方法:

ps -e -o psr= | sort | uniq | wc -l

请注意,仅仅这样运行ps当然会使至少一个核心处于活动状态。

可能更好的方法是运行这个:

tmp=/tmp/ps.$$
ps -e -o psr= > /tmp/ps.$$
sort -u "$tmp" | wc -l
rm "$tmp"

这样,sortwc不会增加计数。

答案3

请尝试以下操作:

cat /proc/cpuinfo

这是一个关联Android Java 示例。

答案4

您可以使用:

cat /sys/devices/system/cpu/possible 或者 cat /sys/devices/system/cpu/online

可能主要是因为你已隔离 CPU 来运行某个特定程序。

相关内容