我有一个戴尔R710机架托pipe几个虚拟机:
我的问题是在上述系统上运行的虚拟Windows 2000服务器。 该服务器运行IIS 6,一些cgi脚本和一些asp页面。 所有的东西都绑在Visual FoxPro DB的后端。
我的问题是我怎么能给我的Windows 2000虚拟机更多的马力,或者这甚至有可能? 我开始使用的虚拟机的Hyper-V设置是:
有了这个configuration,如果我login到3个帐户的Web服务,我可以猛击Win2000虚拟机到100%。 然后,我一直调整服务器的Hyper-V设置,直到我在:
踢球者是在我的所有testing(顶部configuration和底部)我的机架服务器坐在大约。 总共5%的CPU利用率。 同时,我的Win2000虚拟机每次都执行完全相同的操作(固定的CPU有3个账号login进行相同的search,或30%的CPU利用率,一个账号执行search)。
我也尝试调整处理器兼容性设置为“运行一个较旧的操作系统,如Windows NT”。 但是,我没有尝试“迁移到具有不同处理器版本的物理计算机”设置。
虚拟化Windows 2000服务器是否存在固有的问题? 还有什么我可以尝试从主机服务器捕获更多的CPU周期? 理想情况下,我希望主机在Win2000虚拟机locking时使用25-50%的利用率。
一些背景信息:这些是我们旧的遗留服务,目前正在重写.Net。 在重构遗留源代码方面,最有可能的性能改进,但这不是一个选项。 我们的商店缺乏在FoxPro方面的专业知识,业务决策已经做出了更好的努力。
可以select购买快速物理服务器来replace虚拟机。 我相信这会有很大的改善。 不过,我宁愿让这台服务器虚拟化,因为我之前被一台需要重启的机器烧毁了…这是一个从我的手机轻松执行的任务,用于虚拟化服务器。
提前感谢您的任何build议。
其他答案都是正确的。 呼叫微软支持Hyper-V和Windows 2000将被告知唯一支持的configuration涉及一个虚拟CPU。
有了这个说法,我怀疑你每次都得到完全相同的性能,因为当你添加虚拟CPU时,Windows 2000不会自动重新configuration为多处理器安装。 Win2K只使用一个 CPU,即使分配了四个CPU。
您需要去设备pipe理器,并将HAL从单处理器HAL更改为多处理器HAL。 (更新驱动程序的计算机types。)这将触发多处理器内核ntdll,HAL等的安装。我的记忆说,有大约六个二进制文件发生了变化。
请注意,这是一次单程旅行。 即使您回到单个虚拟CPU,您的Win2K VHD将无限期地运行多处理器代码。 您可能首先需要备份VHD,因为这些多处理器二进制文件在运行单个vCPU时效率低于单处理器二进制文件。
最后,请明白微软不支持Win2K的更多CPU的原因部分与Win2K内核不知道没有被虚拟化的事实有关,而且它有一些硬性的假设,即所有的CPU一直在运行。 通过虚拟化更多的处理器来打破这种假设,将导致性能收益(咳嗽,咳嗽)的线性性能不足。使用两个处理器可能会获得合理的性能。 更多可能无济于事。
首先,Windows 2000仅支持Hyper-V上的单个虚拟处理器 。
其次,测量主机服务器的CPU使用率不像使用任务pipe理器那么简单,因为任务pipe理器本身在虚拟机中运行。 有关在Hyper-V中测量CPU使用率的更多信息,请查阅这篇文章 。
你在4核testing中的第一个问题是你运行的是不支持的configuration。 如果运行不受支持,结果很难预测。 查看来自Microsoft的此文档 。 在Hyper V上使用Windows Server 2000时,只能运行一个CPU。
如果你给你的虚拟机一个核心,并将其分配给该核心的100%,那么你已经最大限度地发挥了你的系统性能。 您的其他select是在Windows 2000上部署物理机箱或部署支持SMP的pipe理程序(如ESXi)。