我正在使用运行在具有48个CPU和250GB RAM的主机上的VirtualBox 5.1,我正在导入的虚拟机(来宾)最初有2个CPU和4GB RAM.
在这台机器内部,我正在运行一个带有Java的进程,它启动动态数量的线程来执行某些任务.
我使用以下配置运行它:
在我的笔记本电脑的整个过程(2CPU/4GB RAM)~11秒
服务器虚拟机中的相同程序(15个CPU和32GB RAM)~45秒
服务器虚拟机中的相同程序(20个CPU和32GB RAM)~100+秒
服务器虚拟机中的相同程序(10个CPU和32GB RAM)〜5秒以上
我首先想到我是如何从Java管理线程的,但经过多次测试后,我发现虚拟机的cpus数量和性能之间存在关联,最大值为10,之后机器的整体性能下降(cpu饥饿?)
虚拟机运行Oracle Enterprise Linux 6.7,主机运行Oracle Enterprise Linux 6.9
我在VM文档中找不到有关CPU数量的任何硬限制
是否需要设置一个设置以启用/利用VirtualBox实例中的10个以上的CPU?
我正在写一个小的Haskell练习,应该在列表中移动一些元素,类似于Caesar密码,代码已经在工作,下面是代码。
module Lib (shift, cipherEncode, cipherDecode ) where
import Data.Char
import Data.List
import Data.Maybe
abcdata :: [Char]
abcdata = ['a','b','c','d','e','f','g']
iabcdata :: [Char]
iabcdata = ['g','f','e','d','c','b','a']
shift :: Char -> Int -> Char
shift l n = if (n >= 0)
then normalShift l n
else inverseShift l (abs n)
normalShift :: Char -> Int -> Char
normalShift l n = shifter l n abcdata
inverseShift :: Char -> Int -> Char
inverseShift l n = shifter l n reverse(abcdata) …Run Code Online (Sandbox Code Playgroud)