CPU利用率计算

时间:2018-02-15 20:24:32

标签: operating-system cpu-usage

我已经在许多地方读过,通过这个公式获得CPU利用率百分比的简单而体面的方法是:

CPU utilization = 1 - p^n

其中:

  • p - 阻止时间
  • n - 进程数

但我无法找到解释。似乎它与统计数据有关,但我无法绕过它。

我的出发点是:如果我有2个进程,等待时间为50%,那么公式将产生1 - 1/4 = 75% CPU utilization。但是我破碎的逻辑引出了一个问题:如果一个进程在I / O上被阻塞而另一个进程在第一个被阻塞时被交换运行(无论爆发是什么),这意味着当一个等待时,第二个运行并等待它们时间重叠。那不是100% CPU utilization吗?我认为只有当前半部分程序保证在没有IO需求的情况下运行时才会出现这种情况。

问题是:该公式如何考虑其他所有可能性?

1 个答案:

答案 0 :(得分:0)

你需要从概率的角度思考。如果每个核心空闲(等待IO)的概率为0.5,那么CPU处于空闲状态的概率是所有核心同时处于空闲状态的概率。那是0.5 * 0.5 = 0.25,因此CPU工作的可能性为1 - 0.25 = 0.75 = 75%