Roc*_*nat 9 performance benchmarking docker
我们刚刚编写了一个CPU密集型应用程序来对Docker镜像进 它是一个Java应用程序,它近似于Pi的小数.
java -jar superpi.jar它会强调所有核心并需要30秒docker run fewlaps/superpi它只强调四个核心中的两个并且需要70秒Docker镜像正在运行.jar,就像在主机上运行它一样.为什么Docker镜像没有在本地运行.jar那么快?我们期望在本地运行它并在Docker上运行它之间有一些区别,但是这个过程需要花费一倍的时间.
有没有办法要求Docker使用所有的CPU?
顺便说一句,该项目在GitHub上发布:Fewlaps/SuperPI
Roc*_*nat 10
朋友们,我充满了耻辱:自己的MacOS Docker桌面客户端有一个设置来启用更多或更少的核心.不知道它是否是在上一版本中添加的内容,但我没有注意到.默认情况下,它有两个核心而不是四个,这看起来很精明.
以下是屏幕显示方式:
顺便说一句,只有信息,在同一台机器上:
适用于MacOS的Docker和适用于Windows的Docker是您的问题出现的地方.Docker不会在这些平台上本地运行(尚未),因此它们的安装程序会启动运行boot2docker的VM.这些VM由VirtualBox控制,并且对分配给VM的CPU数量有限制.这些限制可以调整,所以我从那里开始(查看您的Docker实例的VirtualBox配置,更改这可能需要重新启动VM).
要正确比较容器的开销,您需要在运行Docker主机的VM内运行"容器外"测试.那,或者在物理机器上运行Linux的机器上安装Docker,而不是在VM内部.