我在docker容器中执行parallel_tests
,例如一个主机命令。
parallel_tests将检查资源,并为每个核心生成一个进程,在我的实例中,我有8个核心可用:
# docker info
Containers: 5
Images: 75
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 85
Dirperm1 Supported: true
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 3.16.0-49-generic
Operating System: Ubuntu 14.04.2 LTS
CPUs: 8
Total Memory: 15.61 GiB
Name: camacho
ID: ZOYN:QGDO:UGMJ:TDDM:WEEM:ZEHJ:4OKB:V5WR:RGCL:NOKG:F5W5:SDEL
WARNING: No swap limit support
在没有docker的同一台机器上,显然这些测试并行运行并耗尽所有可用资源(正是我们想要的CI)。
在docker中执行时,似乎所有内容都在一个进程中运行,并且结果只能从每个测试运行器同步进行(相比之下它的速度要慢得多)。
我是否需要运行并行主机命令才能使用资源?我是否可以设置一个选项以允许我的docker命令分叉更多并行进程?
答案 0 :(得分:0)
部分问题是在带有virtualbox的OSX上运行,而virtualbox设置为仅使用一个核心运行。 dinghy halt
然后virtualbox
| settings
| system
| processor
。将其设置为线程数,即四核超线程cpu的8个线程。