论文部分内容阅读
图2
图3
虚拟化技术已经广泛应用在服务器实际部署中。通过虚拟化,客户得到了很多好处,包括优化应用性能、提高资源利用率以及减少硬件和软件成本。通过使用System p5的高级虚拟化功能Advanced Power Virtualization(APV)对CPU进行虚拟,用户可以轻松迈出虚拟的第一步。实际证明,虚拟化不是未来的新技术,而是手边实实在在的系统利器。
虚拟化的处理器环境
微分区(Micro-partition)是基于一组被称为共享处理器池的物理处理器运行的。在共享处理器池和操作系统之间分别存在着物理(P)、虚拟(V)和逻辑(L)处理器,其顺序应该是“PVL”(见图1)。System p5平台可支持共享处理器池LPAR(逻辑分区)、独享处理器LPAR或共享和独享处理器LPAR的组合。System p5上激活的处理器可以分配给共享处理器池或分配给指定的LPAR。
图1显示了16个处理器,其中3个是分配给特定LPAR的独享处理器,共享处理器池则分配了剩余的13个处理器。共享处理器池之上是处理单元。处理单元将虚拟化处理器资源呈现给LPAR。处理单元以部分CPU(局部)的形式被分配给LPAR,其最小单位为0.1个CPU(表示CPU处理能力的10%)。分配给某一LPAR的处理单元数量应基于该LPAR上的应用以及其他系统应用对资源的需求预期。在处理单元之上是虚拟处理器,根据应用的特性及其资源需求预期来决定分配给某一LPAR的虚拟处理器。虚拟处理器的数量必须是一个整数。
逻辑处理器在LPAR中的存在表明,系统启用了并发多线程(SMT)功能。SMT是POWER5处理器的一种多线程功能,AIX 5.3可通过这一功能将每一虚拟或物理处理器表示为两个逻辑处理器的形式。SMT允许多个程序线程同时使用一个虚拟处理器,从而提高处理器的利用率。
处理单元和虚拟处理器
虽然虚拟处理器总是以整数的方式分配,但每个虚拟处理器可以代表0.1到1.0个CPU(处理单元)。某一LPAR配置的虚拟处理器数量决定了其可用的处理单元的规模。例如,拥有1个虚拟处理器的LPAR可以使用0.1到1.0个处理单元,而拥有两个虚拟处理器的LPAR可以使用0.2到2.0个处理单元。
处理单元被平均分配给一个LPAR所拥有的虚拟处理器。如果将1.6个处理单元分配给一个拥有4个虚拟处理器的LPAR,那么每一虚拟处理器将拥有0.4个处理单元(见图2)。
当为多线程应用提供更多的虚拟处理器时,应用的运行速度通常会提高,这是因为虚拟处理器允许这些应用同时运行多个线程(即使用了并行机制)。相反,如果将一些虚拟处理器分配给一个在多线程环境中表现不良的应用,那么会导致该应用因无法利用并行机制而出现资源使用效率不高的情况。很明显,将多个虚拟处理器分配给一个单线程应用属于资源的浪费,因为该应用只能一次运行一个线程,从而导致除一个处理器之外的其他处理器都处于空闲状态。
处理器资源的配置
通过使用硬件管理控制台(HMC)创建LPAR时选择共享选项,你可以指定该LPAR以共享处理器池微分区的方式运行。必须设置的其他参数包括: 处理单元数量(所需数量、最小数量、最大数量)、虚拟处理器数量(所需数量、最小数量、最大数量)、封顶/不封顶。
处理单元“所需数量”这一参数给出了要求始终为一个LPAR提供的物理处理资源的理想数量。虚拟处理器“所需数量”这一参数的设置确定了LPAR激活时将被创建的虚拟处理器的首选数量。虚拟处理器的数量决定了LPAR可以使用的最大处理器资源数量。例如,一个拥有两个虚拟处理器的不封顶LPAR最多可以使用两个物理处理器。
微分区可以运行在封顶或不封顶模式下。当对一个LPAR进行封顶限制之后,无论虚拟处理器“所需数量”参数的设置如何,该LPAR可以访问的最大物理处理器资源量都会受到处理单元“所需数量”这一参数的限制。 如果选择未封顶模式,LPAR可访问的物理处理器数量可以大于处理单元“所需数量”参数的设置,最高可以达到虚拟处理器“所需数量”这一参数的设置水平。
以下述LPAR设置为例:
● 处理单元“所需数量”= 1.8;
● 最大处理单元数量 = 5.0;
● 共享模式 = 未封顶;
● 虚拟处理器“所需数量” = 3;
● 最大虚拟处理器数量 = 5。
当使用共享模式设置为封顶时,LPAR只能访问可确保为其提供的1.8个处理单元。如果将共享模式修改为不封顶,仍可保证该LPAR能够访问1.8个处理单元,不仅如此,该LPAR还可访问最多达3个处理单元。
除此之外,不封顶LPAR还提供了一个设置选项,通过设置一个比重或者一个优先程度,允许用户确定为共享处理器池中运行的所有不封顶LPAR分配额外处理能力的优先次序。
为响应不断变化的处理需求,可以在不中断或不重新激活LPAR的情况下动态改变处理单元“所需数量”和虚拟处理器“所需数量”的参数值;用户可以修改这些配置。最小和最大设置代表了可动态改变的“所需数量”值的极限。另外,最小处理单元设置代表了共享处理器池必须为启动LPAR提供的处理单元数量。如果不能提供这一最小设置,那么LPAR将不能被激活。
参数设置的原则
图3显示了一个LPAR在24小时中的CPU利用率,CPU利用率以CPU单元为单位进行表示。当规划多个LPAR的处理器资源分配时,需要关注的是CPU单元数量。
在平稳状态下,图3中这一特定负载使用大约0.9个处理单元,这意味着平均而言,0.9个处理单元是运行这一应用的合适配置。我们在这里假设有两种情况。
如果一个应用的重要性对你的业务来说属于一般,那么你可以选择将处理单元“所需数量”参数设置为0.9。另外,你还可以将最小处理单元数量设置为0.9,从而确保这一LPAR随时可访问0.9个处理单元(图3中的蓝色区域)。为满足高于0.9个处理单元的峰值负载(红色区域),这一LPAR必须被设置为不封顶LPAR,则其他所有共享池中的LPAR都可以将没有使用的处理能力贡献出来。因此,这一LPAR空闲时则可以成为“贡献者”,为其他紧张的地方提供资源。
如果一个应用对你的业务来说十分关键,那么你可以选择将处理单元最小数量和所需数量设置为4.0。这将可以确保在不依赖于其他LPAR是否能够提供额外处理单元的情况下,随时都可以满足该应用的CPU需求(最高为4.0个处理单元)。在大多数时间里,这一LPAR都会成为处理单元的重要“贡献者”(图中使用线以上的所有区域)。
在激活LPAR时,将按照“先到先服务”的原则为其分配资源。每一LPAR在激活时都会为其分配所需的处理单元数量。如果不能提供所需的处理单元数量,但可以提供最小设置规定的数量,那么将会为其分配在最小数量和“所需数量”之间的处理单元。如果最小处理需求也不能得到满足,那么将不会激活LPAR。因此,共享池中运行的所有LPAR所需的处理单元总数不应超过分配给该共享池的处理器的物理数量。为最大程度地提高可运行的LPAR的数量,一定要注意不要过高设置处理单元“所需数量”这一参数。
虚拟处理器的数量决定了一个不封顶LPAR可以使用的处理单元的最大数量。图3中负载的峰值为3.5个处理单元,所以至少需要4个虚拟处理器。为确保该LPAR在需要时至少可以访问3.5个处理单元,虚拟处理器最小值(和“所需数量”)应被设置为4。
优化“所需”设置
为优化共享处理器池的CPU利用率,应在整个处理工作日期间将峰值负载(消费者)与空闲负载(贡献者)搭配在一起运行。换句话说,部分LPAR处于高峰运行状态时,其他LPAR应处于相对空闲的状态。如果一组LPAP的处理单元“所需数量”被设置得过高,那么这些LPAR将不会需要提供给它们的那么多资源,你将拥有太多的“贡献者”,而用户“消费”量却不足,从而导致CPU利用率不能达到最优。反之,如果一组LPAP的处理单元“所需数量”被设置得过低,就会有太多“消费者”,而“贡献者”不足。
很多软件包都是根据逻辑处理器的数量来要求许可证数量,因为这一数量代表了LPAR可访问的最大处理器资源数量。特别地,如果禁用了SMT,那么虚拟处理器的数量就是发放所要求许可证的标准。如果启用了SMT,那么决定软件许数量的标准通常是逻辑处理器的数量。为最大程度地减少软件许可证成本,需要将虚拟处理器的数量设置得尽可能低,同时还要将应用性能保持在合理的水平。