我已经在许多地方读过,通过这个公式获得CPU利用率百分比的简单而体面的方法是:
CPU utilization = 1 - p^n
其中:
p
- 阻止时间n
- 进程数但我无法找到解释。似乎它与统计数据有关,但我无法绕过它。
我的出发点是:如果我有2个进程,等待时间为50%,那么公式将产生1 - 1/4 = 75% CPU utilization
。但是我破碎的逻辑引出了一个问题:如果一个进程在I / O上被阻塞而另一个进程在第一个被阻塞时被交换运行(无论爆发是什么),这意味着当一个等待时,第二个运行并等待它们时间重叠。那不是100% CPU utilization
吗?我认为只有当前半部分程序保证在没有IO需求的情况下运行时才会出现这种情况。
问题是:该公式如何考虑其他所有可能性?
答案 0 :(得分:0)
你需要从概率的角度思考。如果每个核心空闲(等待IO)的概率为0.5
,那么CPU处于空闲状态的概率是所有核心同时处于空闲状态的概率。那是0.5 * 0.5 = 0.25
,因此CPU工作的可能性为1 - 0.25 = 0.75 = 75%