我有一个i3英特尔CPU (双核与超线程)
我通常使用侧栏小工具监控cpu使用情况,在(0-3 )的单独一行中显示每个核心的使用情况。
但最近我注意到核心编号0根本没有被使用。
在一些搜索之后,我遇到了一个主题,解释了内核0,2是真正的内核,而1,3是超线程内核的概念,但根据这一点,这意味着我的CPU的真正内核从未被使用过,甚至我的另一个内核也是无用的。
读得更多,我碰到了这个multi-core-cpu-single-thread-behaviour-not-achieving-100,上面说发生了切换,但仍然没有回答上面的问题,真正的内核0在哪里,为什么只使用了1个内核。

正如你所看到的,这是正常的CPU使用率,核心0,2,3发生了什么,为什么它们没有被其他程序使用,为什么即使有很多程序在运行,也只有一个核心是活动的。
(所有进程都在使用所有内核,通过亲和性进行检查)
发布于 2011-01-11 04:56:49
对于超线程,一个核心上的两个逻辑CPU是等效的。它不是其中一个是真实的,第二个是超线程的。两者共享相同的物理核心。使用它们中的哪一个都无关紧要。最好先在不同的物理核心上调度线程,并且只有在使用了所有物理核心之后,才在相同的核心上使用第二个逻辑CPU,这似乎就是您所描述的。
发布于 2011-01-11 04:50:54
也许是因为没有更多的进程需要计算能力,也可能是因为兄弟级调度被认为更昂贵。也就是说,进程-为了简单起见,让我们考虑一下工作密集型进程-将首先分配给不同的内核,然后再用另一个程序“超载”一个内核(一组N个硬件线程)。换句话说,6核4线程机器通常按0、4、8、12、16、20、1、5、9、13、17、21、2、6、10、14、18、22、3、7、11、15、19、23的顺序填充24个线程。(当然,由于“自发”的进程迁移,可能会出现轻微的偏差。)
而且只使用了一个线程是不正确的:您自己的图表显示了Core3和Core3)和Core4 sic使用率分别为1%和2%。你在进程列表中看到的大多数进程甚至不会运行,它们只是休眠。
https://stackoverflow.com/questions/4650492
复制相似问题