我正在使用VirtualBox 5.1運行在具有48個CPU和250GB RAM的主機上 我導入的虛擬機(guest虛擬機)最初有2個CPU和4GB內存。VirtualBox可以有最大數量的cpus嗎?
這臺機器內我正在運行一個Java進程,啓動一個動態數量的線程來執行一些任務。
在我的筆記本電腦的整個過程(2CPUs/4GB RAM)〜11秒
在服務器 虛擬機相同的節目(15個CPU和32GB:
我與下面配置運行它的RAM)〜45秒
在服務器 虛擬機相同程序(20個CPU和32GB的RAM)〜100+秒
在SER虛擬機相同的節目版本號 (10個CPU和32GB內存)〜5+秒
我首先想到如何從Java管理線程時出現問題,但經過多次測試後,我發現數字之間存在關係虛擬機擁有的cpus及其性能,最大值爲10,此後機器的整體性能變慢(cpu飢餓?)
虛擬機運行Oracle Enterprise Linux 6.7,主機運行Oracle Enterprise Linux 6.9
我在VM文檔中找不到有關CPU數量的任何硬性限制
是否需要設置一個設置來啓用/利用VirtualBox實例中的10多個CPU?
毫無只是「與主機48個CPU「。它有幾個物理CPU包(套接字),因此它是[NUMA系統](https://en.wikipedia.org/wiki/Non-uniform_memory_access)。根據您使用java運行的任務,可能存在限制可伸縮性的效果:如果程序是在沒有計算NUMA效果的情況下製作的,則具有低內存強度的純計算任務可以很好地擴展,並且積極使用內存將不會進行線性擴展。所以,問題可能不在於您的虛擬機解決方案,而在於您的Java動態程序,並且它對任何虛擬機或真正的NUMA都具有有限的可擴展性。 – osgx
另請參見:有沒有VM主機(或其他VM)中的任何用戶進行計時?請描述你的Java任務,而不是虛擬機。 – osgx
它只是我在系統上,沒有其他用戶/進程正在運行 –