如果存在持久性缓存缺失,哪一个CPU-Core的工作负载(使用率)将是100%?

时间:2013-11-14 14:19:56

标签: caching x86 x86-64 cpu-usage cpu-cache

也就是说,如果核心处理器大部分时间都在等待来自RAM或cache-L3的数据而没有缓存缺失,但系统是实时的(实时线程优先级),并且线程是附加的(亲和力)到核心并且无需切换线程/上下文,CPU-Core应该在现代 x86_64 上显示什么样的负载(用法)?

也就是说,仅当登录空闲时,CPU使用率才会显示为减少?

如果有人知道,如果其他处理器的行为不同:ARM,Power [PC],Sparc?

澄清:显示OS-Windows中标准任务管理器中的CPU使用情况

2 个答案:

答案 0 :(得分:1)

在高速缓存未命中时停止的硬件线程(逻辑核心)无法执行任何其他操作,因此对于任务管理器/ CPU时间记帐/操作系统进程调度程序时间片/事物而言,它仍然计为忙那样的。

所有架构都是如此。

没有超线程,“硬件线程”/“逻辑核心”与“物理核心”相同。

Morphcore /其他在超线程和更强大的单核之间的即时更改可能会使保持许多执行单元繁忙的线程与缓存中阻塞的线程之间存在差异时间。

答案 1 :(得分:0)

我没有获得操作系统CPU使用情况统计信息与管道的最佳使用之间的链接。我认为它们是不相关的,因为操作系统不能测量管道负载 我写这篇文章是希望Peter Cordes可以帮助我更好地理解它并作为评论的延续。

用户程序经常放弃对操作系统的控制:当他们需要用户输入或何时输入时 他们完成了信号/消息。 GUI程序基本上只是大循环和 每个迭代控制都被赋予OS直到下一个消息。 当操作系统具有控制权时,它会调度其他线程/任务,如果没有其他操作 只需要进入空闲进程(很久以前就是一个紧凑的循环,现在是一个睡眠状态) 直到下一次中断。这是空闲时间。

ISR处理用户输入所花费的时间被任何操作系统视为空闲时间。 缓存未命中仍然会被视为空闲时间。

繁重的程序需要更多时间来完成给定消息的工作,从而返回 控制操作系统说一秒钟而不是2秒 20.
如果操作系统测量到最后一秒,那么它只能控制2​​0ms CPU使用率为(1000-20)/ 1000 = 98%。

这与CPU架构的最佳使用无关,正如所说的那样 在OS代码中出现,仍然是空闲时间统计的一部分。 管道级别的CPU利用率不是测量值,而是与之正交 操作系统统计数据。

CPU使用率应由sysadmin使用,它衡量您在系统上的负载, 它不是衡量程序组装生成效率的标准。 系统管理员无法为此提供帮助,但可以衡量操作系统获得控制权的频率(没有 preempting)衡量程序对系统的负载程度。 系统管理员最终可以终止重型程序。