我在我的 36 核服务器(EC2 c4.8xlarge/Amazon Linux)上运行这样的命令。
find . -type f | parallel -j 36 mycommand
要处理的文件数量约为 1,000,000 个,需要几十分钟。它应该同时运行 36 个进程。但是,从 的结果来看top
,最多大约有 10 个进程,并且 70% 是空闲的。ps
显示更多进程,但大多数已失效。
我猜是因为每个都mycommand
完成得太快了,parallel
无法赶上产生新进程的速度。所以我试图
parallel --nice 20
为自己分配更多的 CPU 时间parallel
,但这没有用。
有没有人有改善这个的想法?
$ parallel --version
GNU parallel 20151022