生成CPU利用率级别

时间:2016-06-24 10:39:48

标签: cpu-usage

首先,我想告诉您,我最近已经提出过这个问题,但有人认为不清楚,请参阅Linux: CPU benchmark requiring longer time and different CPU utilization levels。现在,这是使用不同方法制定问题的新尝试。

我需要什么:在我的研究中,我会查看计算机的CPU利用率并分析一段时间内的CPU利用率模式。例如,0到10时间段内的CPU利用率模式具有以下形式:

time, % CPU used 
0   , 21.1
1   , 17
2   , 18
3   , 41
4   , 42
5   , 60
6   , 62
7   , 62
8   , 61
9   , 50
10  , 49

我有兴趣为给定的CPU利用率模式找到一个简单的表示。对于评估部分,我需要在笔记本电脑上创建一些CPU利用率模式,然后我将对其进行记录和分析。我需要在笔记本电脑上创建的这些CPU利用率模式

  1. 超过5分钟的时间,理想情况下约20分钟。
  2. CPU利用率模式应该具有某种动态行为"换句话说,使用的%CPU不应该(几乎)随时间变化,但应随时间变化。
  3. 我的问题:如何创建这样的利用率模式?当然,我可以在我的笔记本电脑上运行任意程序,我将获得所需的CPU模式。但是,这个解决方案并不理想,因为我的工作读者无法重复此实验,因为他无法访问我使用的程序。因此,在我的笔记本电脑上使用某些东西而不是任意程序会更有益(在我之前的帖子中,我正在考虑开源CPU基准测试)。谁能推荐我一些东西?

    非常感谢!

1 个答案:

答案 0 :(得分:0)

我建议移动平均线。选择窗口大小并使用它来平均。您需要确定要识别的模式类型,因为窗口越宽,获得的平滑程度越高,您将看到的“功能”越少。而且CPU活动非常突发。例如,如果您尝试识别缓存瓶颈,则需要一个小窗口,可能在10ms到100ms范围内。如果您希望与长期功能(例如能量或负载)相关联,则需要更大的窗口,可能需要10秒到几分钟。

看起来您使用的是操作系统提供的CPU使用率,而不是硬件寄存器。这意味着操作系统已经在进行一些平滑处理。它也可能正在对某些性能值进行估算。如果要在较小的窗口上集成,请尝试查找相关文档。提醒一句:这一级别的信息很难找到。你可能需要做很多挖掘。根据您对内核代码的熟悉程度,可能更容易查看代码。