Windows

Hyper-V 無法擴展 Windows Server 2000 VM 的處理器訪問

  • July 8, 2011

我有一個託管多個 VM 的 Dell R710 機架:

  • 帶有 Hyper-V 的 Windows Server 2008 R2
  • 雙 Xeon 5520 @ 2.26 GHz
  • 32GB 記憶體
  • 組合網卡(4 個千兆網卡)
  • 所有虛擬機都在它們自己的一組鏡像 SAS 磁碟上

我的問題是在上述系統上執行的虛擬 Windows 2000 伺服器。該伺服器執行 IIS 6、一些 cgi 腳本和一些 asp 頁面。所有這些都與 Visual FoxPro DB 後端相關聯。

我的問題是如何為我的 Windows 2000 VM 提供更多功能,或者這是否可能?我的虛擬機開始時的 Hyper-V 設置是:

  • 已分配 3GB 記憶體
  • 預設虛擬核心 (1)
  • 10%(十)虛擬機預留
  • 100% 虛擬機限制
  • 100 相對權重(託管了 2 個其他 VM,所有這些 VM 都處於空閒狀態並且位於單獨的 SAS 磁碟上)

使用此配置,如果我使用 3 個帳戶登錄到 Web 服務,我可以將 Win2000 VM 猛擊到 100%。然後,我向上和向上調整伺服器的 Hyper-V 設置,直到我處於:

  • 4個虛擬核心
  • 100% VM 保留(或總系統資源的 25%)
  • 100% 虛擬機限制
  • 1000 相對重量

最重要的是,在我所有的測試(頂部配置和底部)中,我的機架伺服器大約坐在。總共 5% 的 CPU 使用率。同時,我的 Win2000 VM 每次都執行完全相同的操作(固定 CPU 與 3 個登錄帳戶執行相同的搜尋,或 30% 的 CPU 使用率與單個帳戶執行搜尋)。

我還嘗試為“執行較舊的作業系統,例如 Windows NT”調整處理器兼容性設置。但是,我沒有嘗試“遷移到具有不同處理器版本的物理電腦”設置。

虛擬化 Windows 2000 伺服器是否存在固有問題?還有什麼我可以嘗試從主機伺服器擷取更多 CPU 週期的東西嗎?理想情況下,當 Win2000 VM 固定時,我希望主機的使用率達到 25-50%。

一些背景資訊:這些是我們目前正在用 .Net 重寫的舊遺留服務。重構遺留原始碼最有可能獲得性能改進,但這不是一種選擇。我們的商店缺乏 FoxPro 方面的專業知識,並且已做出業務決定,最好將精力花在重寫上。

可以選擇購買快速物理伺服器來替換 VM。我相信這將有顯著的改善。但是,我更願意將此伺服器虛擬化,因為我之前曾被需要重新啟動的機器燒毀……這項任務很容易通過我的手機為虛擬化伺服器執行。

提前感謝您提出的任何建議。

其他兩個答案都是正確的。致電 Microsoft 尋求 Hyper-V 和 Windows 2000 的支持將導致被告知唯一受支持的配置涉及一個虛擬 CPU。

話雖如此,我懷疑您每次都獲得完全相同的性能,因為當您添加虛擬 CPU 時,Windows 2000 不會自動將自己重新配置為多處理器安裝。Win2K 只使用一個CPU,即使您分配了四個。

您需要轉到設備管理器並將 HAL 從單處理器 HAL 更改為多處理器 HAL。(更新電腦類型的驅動程序。)這將觸發多處理器核心、ntdll、HAL 等的安裝。我的記憶說大約有六個二進製文件發生了變化。

請注意,這是一次單程旅行。此後,您的 Win2K VHD 將無限期地執行多處理器程式碼,即使您回到單個虛擬 CPU 也是如此。您可能需要先備份 VHD,因為在執行單個 vCPU 時,這些多處理器二進製文件的效率低於單處理器二進製文件。

最後,請理解微軟不支持更多 CPU 用於 Win2K 的部分原因是 Win2K 核心不知道沒有被虛擬化,並且它有一些硬性假設,即所有 CPU 一直在執行。通過虛擬化更多處理器來打破這一假設將導致性能提升低於線性(咳咳)。使用兩個處理器可能會獲得合理的性能。更多可能無濟於事。

引用自:https://serverfault.com/questions/287953