【问题标题】:Generating CPU utilization levels生成 CPU 利用率级别
【发布时间】:2016-06-24 10:39:48
【问题描述】:

首先我想告诉你,我最近已经问过这个问题了,但是它被认为是不清楚的,请参阅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 使用百分比不应(几乎)随时间保持不变,而应随时间变化。

我的问题:如何创建这样的使用模式?当然,我可以在我的笔记本电脑上运行任意程序,我将获得所需的 CPU 模式。然而,这个解决方案并不理想,因为我作品的读者没有办法重复这个实验,因为他无法访问我使用的程序。因此,在我的笔记本电脑上使用某些东西而不是任意程序会更有益(例如,在我之前的帖子中,我正在考虑开源 CPU 基准测试)。谁能给我推荐一些东西?

非常感谢!

【问题讨论】:

    标签: cpu-usage


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-22
      • 2013-11-04
      • 2019-11-26
      • 1970-01-01
      • 2013-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多