如何正确设置OpenVz VE的CPU单元

根据我读的所有资料(openvz wiki,各种邮件列表,论坛等),cpuunits设置的值是相互关联的。 所以,当所有的都相同,系统繁忙,所有收到相同的CPU共享。

但有些东西仍然令我感到困惑:为什么有一个工具“vzcpucheck”显示“节点/主机的威力”:

Current CPU utilization: 18000 Power of the node: 880001 

为什么有(我需要)一个绝对数字,当所有的设置只是相对的?

这两个设置不应该完全一样吗?

 ve1: 1 ve2: 1 ve3: 1 = 3 ve1: 293334 ve1: 293334 ve1: 293334 = 880001 (power of the node) 

有什么不同?

CPU单元是CPU优先。 如果有多个VPS帐户需要超过任何给定时间可用的CPU处理能力总量,则CPU优先级将发挥作用。

一个例子是两个虚拟的VPS帐户,VPS-A有800个CPU单元,VPS-B有400个CPU单元。 如果两个VPS帐户同时请求100%的CPU,则VPS-A将获得两倍于VPS-B的CPU时间,因为800是400的两倍。

如果硬件节点上没有其他VPS帐户需要它,VPS仍然可以获得100%的CPU,但是一旦另一个VPS需要CPU时间,该百分比就会下降。

在这里引用来源

因此,如果你想build立一个容器真正得到有保证数量的CPU的系统,你需要确保你不会超额订购,仔细计算你的CPU单元与节点的能量。 节点的强大function可以让你计算单个CPUUNIT值多less(如果你不超额订阅)。 例如一个3个CPU的计算机有30个CPUUNIT,意味着1个单元的价值是0.1Ghz(这些不是实数)。 因此,如果一个虚拟机需要1Ghz,另一个需要专用的1.5ghz,则可以使用这个参数作为指导,相应地使用10和15。 只要确保你不分配超过30个CPU单位,否则10不再代表1 Ghz的保证。

节点的功率真的解决了这个问题:由于技术的进步/不同的架构,两个3GHz的CPU可能不会每秒执行相同数量的计算 。 所以不同的节点可能能够处理更多或更less的容器,即使它们具有相同的CPU频率。 这就是为什么亚马逊在ECU而不是GHz上宣传计算能力的原因。

你可能会发现使用cpulimit是容器不能超过的CPU的百分比。 如果您有两个内核,则可以接受高达200%的值。 然而,以前的设置是更“专用的CPU与突发”,而这,它更容易设立“专用的CPU”(但你仍然必须确保你不超额订阅你的百分比)

由于CPU单元必须被读作“有保证的CPU单元”。 这澄清了真正的意义。

每个VE 可能具有节点的所有功率,减去所有其他VE的CPU功率保证。