
在我工作的地方,我們運行的是使用 Debian Linux 發行版的功能相對強大的 PC。然而,對於我們需要安裝的某些程序,最好有 CentOS,這些將是我們的主要工作工具。更改工作場所中所有電腦的作業系統是可能的,但我們正在嘗試確定使用 VirtualBox 是否是簡單性的更好選擇。
這一切都取決於以下幾點。我們需要運行的程式是模擬器,它們是處理器密集型任務,每次啟動模擬時可以輕鬆運行長達一個小時或更長時間。我們需要確定使用 Virtual Box 時的效能下降是否足以值得我們更改作業系統。
所以我的問題是,是否有人可以證實地告訴我,與在本機 PC 上運行相比,在虛擬機器中運行處理器密集型任務對效能有何影響?
謝謝。
答案1
對於數位處理程序(非常受 CPU 限制),虛擬機器的效能影響幾乎為零。指令直接在CPU上運行,這對主機和VM來說是相同的。
即使對於嚴肅的編譯任務,效能差異也幾乎不明顯。我們在 Windows 上的 VMware 中執行 CentOS 虛擬機器。
由於您在主機上運行 Linux,您也可以考慮鍵盤虛擬機(核心虛擬機器)而不是 VirtualBox。它是一系列核心模組,使用大多數現代 CPU 上提供的 Intel VT-x 虛擬化擴充在 Linux 中提供虛擬化服務。 QEMU 使用 KVM 作為加速器,直接在主機 CPU 上執行 x86 程式碼。
只需安裝virt-manager
即可嘗試。
答案2
實際上,聽起來 Docker 可能是您正在做的事情的更好選擇。 Docker 提供容器,它們是在同一核心之上運行的隔離沙箱。系統呼叫/IO 開銷為零,因為容器內進程與主機上的進程沒有什麼不同。
由於您已經在運行 Linux,因此 Docker 將是提供 CentOS 環境的好方法,而無需重新安裝所有電腦。
另外,看看我的實用程序,水肺潛水這使得在 Docker 容器內運行諸如建置之類的事情變得很容易。您將運行而不是make
運行scuba make
。就這樣!
答案3
對此沒有一個好的答案。這在很大程度上取決於您如何使用虛擬機器以及使用哪些程式。
例如,使用 VMWare(2 類虛擬機器管理程式)和純粹 CPU 密集型程式可產生幾乎全 CPU 速度。如果我使用相同的虛擬機器管理程序和具有大量系統呼叫的程序,我的速度會嚴重減慢。
當您使用類型 1 虛擬機器管理程式(無來賓)作業系統時,情況也會改變。即使在這些之間也有很多變化。例如,Xen 支援 5 種模式(來自上週末 FOSDEM 關於 Xen 的 IIRC)模式。從硬體使用到半虛擬化。
回顧一下:正如所要求的,它可以從幾乎沒有減速到嚴重減速。
現在,如果我關注 VirtualBox,那是一個 2 類虛擬機器管理程式。純粹的 CPU 密集型程式應該沒問題。