假设我在一家公司工作,这家公司只有一台服务器。每个月末,老板都会走进我的办公室问我:“我们需要新 CPU 吗?”。我们还可以假设,根据经验,如果使用了超过 70% 的“系统资源”,则该公司需要新 CPU。输入 lscpu 时,我得到
fabi@alien-linux:~$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
...
所以我计算
X = (Nr of CPUs)*(Nr of sockets)*(Nr of cores per socket)*(Threads per core)
在我的情况下是 84。为简单起见,我们假设我在整个月内以非常高的采样率执行“top”,并且它不断显示
50.0 50.0 50.0
这意味着,平均有 50 个进程要么实际由内核处理,要么等待处理,要么处于“不可中断”状态。很好,我计算了一下
0.7 * 84 = 58.8
所以这意味着“70%的系统资源=58.8个进程”。
由于我只有 50 个流程,所以我可以向老板回答‘不’,我们不需要新硬件。
这是我的问题:
它是否正确?
问题已提出这里答案是这个计算不正确。我不明白为什么……
此致,
防火墙