如何用Windows中虚拟主机服务器的内核暂停?

日期: 2010-08-11 作者:Brien M. Posey翻译:王越 来源:TechTarget中国 英文

由于虚拟化技术可以通过整合服务器更好地利用底层硬件资源而深受很多公司的青睐。只要给虚拟机分配足够的硬件资源,这些虚拟机可以承载和硬件平台一样的工作。但是也有一些IT管理员不明白在主机服务器升级到Windows Server 2008 R2之后虚拟服务器性能下降的原因,这可能是因为内核暂停(Core Parking)导致的,所谓的内核暂停即Windows Server 2008 R2和Windows 7中的一个节能属性。   操作系统通过使用内核暂停功能关闭未充分利用的CPU内核来有效地辅助降低多核CPU的能量消耗,原来使用暂停内核的工作负载转向使用仍然保留的内核。

用户可以通过使用资源监控(Re……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

由于虚拟化技术可以通过整合服务器更好地利用底层硬件资源而深受很多公司的青睐。只要给虚拟机分配足够的硬件资源,这些虚拟机可以承载和硬件平台一样的工作。但是也有一些IT管理员不明白在主机服务器升级到Windows Server 2008 R2之后虚拟服务器性能下降的原因,这可能是因为内核暂停(Core Parking)导致的,所谓的内核暂停即Windows Server 2008 R2和Windows 7中的一个节能属性。

  操作系统通过使用内核暂停功能关闭未充分利用的CPU内核来有效地辅助降低多核CPU的能量消耗,原来使用暂停内核的工作负载转向使用仍然保留的内核。用户可以通过使用资源监控(Resource Monitor)查看暂停的CPU内核和处于活动状态的CPU内核,如图1所示:

  图1:通过资源监控器查看暂停的CPU内核

CPU内核

点击放大

 虽然Microsoft没有提供内核暂停功能的GUI,但是可以通过命令行或者注册表控制该功能。

  剖析Windows电力管理功能:系统崩溃教程

  Windows具有多个内置的电力模式,每个模式都有一个全局的唯一标识符(GUID:Global Unique Identifier)。通过如下命令可以查看该模式及其GUID:

  Powercfg --list

  如图2所示,活动状态的模式以星号标识。

  图2:Windows拥有多个电力模式

Windows电力模式

点击放大

  如果以前曾经使用过Windows电力管理功能,就会知道不能够使用电力规划的默认设置。每一电力管理设置都有其固有的GUID,可以使用如下命令查看各种设置及其GUID:

  Powercfg /q

  图3所示的是Windows的配置设置,最小处理器状态和最大处理器状态,但是这里看到的是设置上的技巧——处理器状态设置为百分比。

  图3:处理器状态设置为百分比

处理器

点击放大

  例如,假定对能源消耗比较重视,并且计划防止服务器使用CPU内核的一半以上,就可以使用如下命令完成该需求:

  Powercfg --setacvalueindex scheme_current sub_processor bc5038f7-23e0-4960-96da-33abaf5935ec 50

  在该命令中,第一个参数是setacvalueindex。这个参数可以告诉Windows这个设置应该只在服务器以AC电力模式(即在不使用电池的情况)的情况下使用。从上图中可以看到Windows为AC电力模式和DC电力模式提供各自不同的设置。

  第二个参数是scheme_current:该参数的作用是告诉Windows所作出的更改只能应用在系统的当前电力状态,这个参数也能够用特定的电力模式代替。

  接下来的一个参数的名称是sub_processor bc5038f7-23e0-4960-96da-33abaf5935ec 50。如果回头查看图2,就会看到bc5038f7-23e0-4960-96da-33abaf5935ec是最大处理器状态的GUID。该参数以50结尾,该数字表示预期的可用CPU内核最大使用率为50%。

  需要注意的是最大处理器状态下所显示的电力设置范围是从0到64。最小的可能设置是0,即可以告诉Windows使用0%的CPU内核(但是千万不用这样做!);最大的可能设置是64,64表示可以100%的CPU内核。
 
  查看下图4可以更好的了解该模式的工作原理。我们告诉Windows最多使用可用内核的50%。注意图4中最大处理状态的当前AC电力索引(Current AC Power Index)设置为32,32是64的50%,即可用内核最多可以使用50%。

  图4:Windows将会只占用一半的CPU内核

Windows

点击放大

  现在就知道如何减少所使用的内核数量,但是如果希望增加该数字或者禁用所有的内核暂停功能的话。使用的其实是相同的概念,但是将会需要把最大处理状态和最小处理器状态都设置为100%。

  通过上文提到的相同的命令行就可以把最大处理器状态设置为100%,只是把50用100代替就可以。实际将会用到的命令是:

  Powercfg --setacvalueindex scheme_current sub_processor bc5038f7-23e0-4960-96da-33abaf5935ec 100

  使用我刚刚提到的命令可以把最小处理器状态设置为100%,但是需要换成最小处理器状态的GUID。实际中将会用到的命令如下:

  Powercfg --setacvalueindex scheme_current sub_processor 893dee8e-2bef-41e0-89c6-b55d0929964c 100

  只要需要对电力配置做出改变,就应该通过使用powercfg /q命令对更改做出验证。如果对该改变满意的话,就能够通过下面的命令执行:

  Powercfg --setactive scheme_current

  图5所示是该设置的一个例子:

  图5:使用“Powercfg --setactive scheme_current”命令完成设置

内核暂停

点击放大

作者

Brien M. Posey
Brien M. Posey

Brien M. Posey,微软认证系统工程师,Windows 2000 Server 和 IIS方面最有价值专家。Brien曾任全国性连锁医院的CIO,负责过Fort Knox的网络安全。作为一名自由撰稿人,他为微软, CNET, ZDNet, TechTarget, MSD2D, Relevant Technologies 以及其他的科技公司写过稿。

翻译

王越
王越

相关推荐

  • 使用PowerShell与PowerCLI自动化主机服务器任务

    这是关于PowerCLI的另一篇技巧,它是为Windows PowerShell脚本语言而创建的嵌入单元。今天的文章介绍如何使用PowerShell和PowerCLI对主机服务器进行自动化操作。

  • 如何解决VMware上的服务器分区问题?

    我有个关于VMware分区的问题。如果我有一台服务器即将安装虚拟机,真实的服务器应该如何分区?对于安装有虚拟机的服务器怎样分区最好?

  • Hyper-V性能优化:监控技巧

    你如何能确定你的Hyper-V主机服务器和虚拟机是否是最优配置?本文将为已经部署了Hyper-V并想充分利用主机服务器和虚拟机的系统管理员提供一些技巧。

  • VMware组件的回顾及准备主机服务器

    本部分将揭示VMware Server内部的重要组件及服务,以及如何准备主机服务器。后面的部分包括Windows安装、VMware Server的安全性等更多内容。