Boot2docker在没有共享文件夹的Windows上很慢

我有一个Oracle数据库的Docker映像,需要处理大约500万行。

我的机器运行Windows 7,并在运行Ubuntu的Virtualbox VM中使用Docker。 虚拟机configuration2 GB RAM和4个逻辑核心。 数据库运行在虚拟机上的Docker容器中,我的应用程序的客户端运行在主机Windows机器上。 在这种情况下,应用程序在230秒内运行并处理所有内容。

第二个场景是在同一个主机上,但是我使用的是Boot2docker,而不是Ubuntu VM。 我还configuration了Boot2docker VM,使用2 GB RAM和4个逻辑核心。 使用和以前一样的Docker镜像,我从Boot2docker中的容器启动数据库,并使用Windows来运行客户端。 但是,这次testing需要1840秒而不是230

这些testing是可重复的,显示不超过5%的变化。

除CPU和内存之外,networkingconfiguration是相同的(一个适配器作为NAT,一个作为主机),存储configuration相同,并且在主机上使用相同的磁盘,容器不使用共享文件夹主机,因为我知道这可能会导致与Virtualbox的性能问题。

我也尝试使用Debian VM进行testing,性能与Ubuntu相同。

我很困惑这是为什么发生。 硬件是一样的,Ubuntu和Boot2docker都使用完全相同的configuration在VirtualBox虚拟机中运行,但是Ubuntu比Boot2docker快了8倍。 任何想法为什么?

我发现了这个问题。 安装Boot2docker时,仅使用适配器types半虚拟化networking创build主机专用networking。 我将其更改为PCnet-FAST III,速度更快。